Ось XPath, получить все следующие узлы до

У меня есть следующий пример HTML:

<!-- lots of html -->
<h2>Foo bar</h2>
<p>lorem</p>
<p>ipsum</p>
<p>etc</p>

<h2>Bar baz</h2>
<p>dum dum dum</p>
<p>poopfiddles</p>
<!-- lots more html ... -->

Я хочу извлечь все абзацы, следующие за заголовком 'Foo bar', пока не дойду до заголовка 'Bar baz' (текст для 'Bar baz 'неизвестен, поэтому, к сожалению, я не могу использовать ответ, предоставленный bougyman). Теперь я, конечно, могу использовать что-то вроде // h2 [text () = 'Foo bar'] / following :: p , но это, конечно, захватит все абзацы, следующие за этим заголовком. Так что у меня есть возможность пройти по набору узлов и поместить абзацы в массив до тех пор, пока текст не будет соответствовать тексту следующего следующего заголовка, но давайте будем честными, это никогда не так круто, как возможность сделать это в XPath.

способ сделать это, который мне не хватает?

14
задан Lee Jarvis 22 January 2011 в 03:04
поделиться