XPath поиск с использованием операторов - PullRequest
0 голосов
/ 22 августа 2011

Привет, у меня есть следующий код, который ищет и возвращает первый абзац после <h3>

//div[starts-with(@id,'content_div')]/h3[.='Course Content']/following-sibling::p[1]

Поскольку я использую один и тот же код на нескольких веб-страницах, некоторые из этих страниц не содержат<h3> и вместо этого содержат тег <h4>.Каков синтаксис для проверки наличия тега <h3>, а если нет, для проверки <h4>?

Ответы [ 2 ]

0 голосов
/ 22 августа 2011

Если вы используете XPath 2.0, вы можете заменить h3 на (h3|h4).

В XPath 1.0 вам нужно заменить его на *[self::h3 or self::h4]

0 голосов
/ 22 августа 2011

Вы можете проверить, существует ли дочерний элемент, используя предикат, например ::

//div[span]

Он выберет все div элементы, которые имеют span

//div[starts-with(@id,'content_div')]/*[self::h3 or self::h4 and .='Course Content']/following-sibling::p[1]
...