178 votes

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

Question suivante :

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

Voir ci-dessus,

Si je veux une expression XPath qui vérifie à la fois l'identifiant et la classe, peut-on le faire avec la condition 'and' LIKE :

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

Est-ce la bonne méthode ? Mon exécution échoue ici... Merci de m'aider !

247voto

Brian Agnew Points 143181
//div[@id='..' and @class='...]

devrait faire l'affaire. Il s'agit de sélectionner le div les opérateurs qui ont à la fois de la valeur requise.

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

127voto

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

35voto

user3387223 Points 124

En complément de la réponse de Brian Agnew.

Vous pouvez également faire //div[@id='..' or @class='...] et vous pouvez avoir des expressions parenthésées à l'intérieur de //div[@id='..' and (@class='a' or @class='b')] .

1voto

Manjesh Points 1

Exemple de XML :

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

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

Banc d'essai XPath : http://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm

0voto

user2046018 Points 11

Cela devrait fonctionner parfaitement. //div[@id='id-74385'][@class='guest clearfix']

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X