Quelle est L'expression XPath pour ne trouver que la première occurrence?
j'ai utilisé cette expression Xpath "//span[@class='Big']"
et a obtenu tous les éléments de la page qui sont sous <span>
et la balise de class='Big'
.
ma question Est ce que si je veux juste la première occurrence sur la page, Pas toutes les occurrences, ce qui serait le correct Xpath
expression?
Merci, Narin
2 réponses
La réponse correcte (notez les parenthèses):
(//span[@class='Big'])[1]
L'expression suivante est fausse dans le cas général:
//span[@class='Big'][1]
parce qu'il sélectionne chaque span
élément dans le document, qui répond à la condition dans le premier prédicat, et qui est le premier enfant de son parent -- il peut y avoir beaucoup de tels éléments dans un document XML et tous seront sélectionnés.
Pour plus de détails voir l'explication: https://stackoverflow.com/a/5818966/36305
la réponse de Dimitre Novatchev est correcte Si vous attendez le class
l'attribut égalBig
(sans les autres classes rattachée à l'élément):
(//span[@class='Big'])[1]
... qui est similaire à L'expression JavaScript suivante:
document.querySelectorAll( "span[class='Big']" )[0]
par contre, si vous attendez Big
d'un des classes dans le class
attribut (plutôt que la seule classe), vous pouvez utiliser l'expression suivante:
(//span[contains(concat(" ", normalize-space(@class), " "), " Big ")])[1]
... qui est similaire à L'expression JavaScript suivante:
document.querySelectorAll( "span.Big" )[0]