У меня есть следующий пример 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" неизвестен, поэтому, к сожалению, я не могу использовать ответ предоставленный бугиманом). Теперь я могу, конечно, использовать что-то вроде //h2[text()='Foo bar']/following::p
, но это, конечно же, захватит все абзацы, следующие за этим заголовком. Поэтому у меня есть возможность пересечь узел узлов и нажимать абзацы в массив, пока текст не соответствует тексту следующего следующего заголовка, но пусть честно, что никогда не бывает так круто, как это можно сделать в XPath.
Есть ли способ сделать это, что мне не хватает?