2016-06-09 2 views
0

Я пытаюсь извлечь все из узлов «p», которые следуют за «h2», содержащим «Сводка», пока не дойду до следующего «h2».Xpath, чтобы извлечь из следующих братьев и сестер до следующего указанного узла

Это то, что я до сих пор:

.//h2[contains(text(),'Summary')]/following-sibling::*

Я просто не знаю, как чтобы заставить его остановиться. Возможно ли это?

html

+0

Добавить p [1] вместо последнего * .Если у вас есть несколько элементов h2 с текстом Сводка, то добавьте [1] после [содержит (..)] – lauda

ответ

1

При выборе p[preceding-sibling::h2[1][contains(., 'Summary')] вы будете выбирать все p детей контекстного узла, которые имеют (или) h2, содержащий Summary как непосредственно предшествующий h2 собрата.

Если вы хотите, чтобы все такие элементы (например, ul), используйте *[not(self::h2)][preceding-sibling::h2[1][contains(., 'Summary')].

Или вы можете попробовать .//h2[contains(., 'Summary')]/following-sibling::*[preceding-sibling::h2[1][contains(., 'Summary')]].

+0

Это большое спасибо .//p[preceding- sibling :: h2 [1] [содержит (., 'Summary')]] работает отлично. Я не считал работу «назад». –

 Смежные вопросы

  • Нет связанных вопросов^_^