web-dev-qa-db-fra.com

Comment écrire une requête XPath pour faire correspondre deux attributs?

Question suivante:

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

Donnée ci-dessus,

Si je veux une expression XPath avec vérifie à la fois id et class, pouvons-nous le faire avec 'et' condition LIKE:

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

Est-ce correct? Mon exécution échoue ici ... S'il vous plaît, aidez-moi!

115
shola
//div[@id='..' and @class='...]

devrait faire l'affaire. Cela sélectionne les opérateurs div qui possèdent les deux attributs de la valeur requise.

Il vaut la peine d’utiliser l’un des bancs d’essai XPath en ligne pour essayer des choses.

180
Brian Agnew

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

85
user244278

Ajoutant à la réponse de Brian Agnew.

Vous pouvez aussi faire //div[@id='..' or @class='...] Et vous pouvez avoir des expressions entre parenthèses dans //div[@id='..' and (@class='a' or @class='b')].

17
CodeMonkey

Exemple de 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

1
Manjesh