Как написать запрос XPath для сопоставления двух атрибутов?


150

Следующий вопрос:

<div id="id-74385" class="guest clearfix" style="z-index: 999;">

Учитывая выше,

Если мне нужно выражение XPath с проверками как идентификатора, так и класса, можем ли мы сделать это с условием LIKE:

//div[@id='id-74385'] and div[@class='guest clearfix']

Это правильный способ? Моя казнь здесь не удалась ... Пожалуйста, помогите!

Ответы:


219
//div[@id='..' and @class='...]

должен сделать свое дело. Это выбор divоператоров, которые имеют оба атрибута требуемого значения.

Стоит использовать одну из онлайн-тестовых стендов XPath, чтобы попробовать что- нибудь .


Многие онлайн-инструменты требуют соответствия XML. Для HTML проще протестировать с помощью реализации XPath в браузере. Вот пример кода вместе со вспомогательной функцией для преобразования итераторов в массивы.
jpaugh


24

Добавление к ответу Брайана Агнью.

Вы также можете это сделать, //div[@id='..' or @class='...]и вы можете заключить в скобки выражения внутри //div[@id='..' and (@class='a' or @class='b')].


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.