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).