Comment ignorer le premier élément dans xpath

Comment puis-je ignorer le premier élément et obtenir le rest des éléments?

 

Merci

si vous voulez ignorer le “premier” élément seulement:

 //li[position()>1] or (//a)[position()>1] 

si vous voulez le dernier seulement (comme votre exemple semble le suggérer):

 //li[last()] or (//a)[last()] 

Vous pouvez utiliser position() pour passer le “premier”, mais en fonction de l’élément qui vous intéresse et du contexte, vous aurez peut-être besoin d’une légère variation de votre XPATH.

Par exemple, si vous voulez adresser tous les éléments li et obtenir tout sauf le premier, vous pouvez utiliser:

 //li[position()>1] 

et cela fonctionnerait comme prévu, en retournant tous les éléments li , sauf le premier.

Cependant, si vous souhaitez traiter tous les éléments, vous devez modifier légèrement le XPATH. Dans le contexte de l’expression //a[position()>1] chacun des éléments a aura une position() de 1 et last() sera évaluée à true. Donc, il renverrait toujours a et ne sauterait pas sur le premier.

Vous devez envelopper l’expression qui sélectionne le a entre parenthèses pour les regrouper dans un ensemble de nœuds, puis appliquer le filtre de prédicat sur la position.

(//a)[position()>1]

Vous pouvez également utiliser une expression comme celle-ci:

 //a[preceding::a] 

Cela trouvera tous les éléments sauf le premier (puisqu’il n’y a pas de précédent le premier).