Quelqu'un sait-il comment obtenir la position d'un nœud en utilisant xpath?
Disons que j'ai le XML suivant:
<a>
<b>zyx</b>
<b>wvu</b>
<b>tsr</b>
<b>qpo</b>
</a>
Je peux utiliser la requête xpath suivante pour sélectionner le troisième <b> nœud (<b> tsr </b>):
a/b[.='tsr']
Ce qui est bien beau mais je veux retourner la position ordinale de ce nœud, quelque chose comme:
a/b[.='tsr']/position()
(mais un peu plus de travail!)
Est-ce même possible?
edit : J'ai oublié de mentionner que j'utilise .net 2, donc c'est xpath 1.0!
Mise à jour : Ended à l' aide de James Sulak de excellente réponse . Pour ceux qui sont intéressés, voici mon implémentation en C #:
int position = doc.SelectNodes("a/b[.='tsr']/preceding-sibling::b").Count + 1;
// Check the node actually exists
if (position > 1 || doc.SelectSingleNode("a/b[.='tsr']") != null)
{
Console.WriteLine("Found at position = {0}", position);
}