Как написать запрос XPath для соответствия двум атрибутам? - PullRequest
111 голосов
/ 06 января 2010

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

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

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

Если я хочу выражение XPath с проверками как id, так и класса, можем ли мы сделать это с условием w / 'и' LIKE:

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

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

Ответы [ 4 ]

173 голосов
/ 06 января 2010
//div[@id='..' and @class='...]

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

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

83 голосов
/ 06 января 2010

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

17 голосов
/ 24 марта 2017

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

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

1 голос
/ 05 сентября 2013

Пример XML:

<X>
<Y ATTRIB1=attrib1_value ATTRIB2=attrib2_value/>
</X>

string xPath="/" + X + "/" + Y +
"[@" + ATTRIB1 + "='" + attrib1_value + "']" +
"[@" + ATTRIB2 + "='" + attrib2_value + "']"

XPath Testbed: http://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...