Comment ignorer premier élément dans xpath
Comment puis-je ignorer premier élément et le repos des éléments?
<ul>
<li><a href="#">some link</a></li>
<li><a href="#">some link 2</a></li>
<li><a href="#">link i want to find</a></li>
</ul>
Grâce
- Pouvez-vous définir ce qu'est le "premier élément" est? À partir de l'exemple XML le premier élément est la
ul
, ou si vous voulez dire à partir de laul
le premier élément estli
, ou voulez-vous sélectionner tous lesa
éléments puis passer le premier de ceux-là? - Je veux ignorer premier li.
Vous devez vous connecter pour publier un commentaire.
si vous souhaitez ignorer la "première" de l'élément, puis:
si vous voulez la dernière (comme votre exemple semble le suggérer):
a[position()>1]
renvoie tous lesa
éléments sauf le premier.a
serait égal à 1 ET la dernière() et de renvoyer chacun desa
éléments, de ne pas sauter le premier.position()
à évaluer comme prévu, vous devez envelopper la sélection d'éléments dans des parenthèses pour regrouper dans un node-set, et puis appliquer le prédicat de filtre sur la position on (c'est à dire (//a)[position()>1]
et(//a)[last()]
)//a[position()>1]
dans l'exemple, et//a[last()]
a trois matchs. Avez-vous testé votre XPath avant de le poster?Vous pouvez utiliser
position()
de sauter la "première", mais en fonction de l'élément qui vous intéresse et ce que le contexte est, vous pouvez avoir besoin d'une légère variation sur votre XPATH.Par exemple, si vous voulez l'adresse de tous les
li
éléments et d'obtenir toutes, sauf la première, vous pourriez utiliser:et cela fonctionne comme prévu, le retour de tous les
li
éléments, à l'exception de la première.Toutefois, si vous voulez l'adresse de tous les
a
éléments que vous devez modifier le chemin XPATH légèrement. Dans le contexte de l'expression//a[position()>1]
chacun desa
éléments auront unposition()
de 1 etlast()
permettra d'évaluer la valeur true. Donc, il serait toujours revenir chaquea
et ne serait pas sauter sur le premier.Vous avez besoin de placer l'expression qui sélectionne les
a
dans des parenthèses pour regrouper dans un node-set, puis appliquer le prédicat de filtre sur la position on.(//a)[position()>1]
Sinon, vous pouvez également utiliser une expression comme ceci:
Qui vous permettra de trouver tous les
a
éléments sauf le premier (puisqu'il n'est pasa
précédant le premier).