Quelqu'un sait comment obtenir la position d'un nœud en utilisant xpath?Trouver la position d'un nœud en utilisant xpath
Dire que j'ai le code XML suivant:
<a>
<b>zyx</b>
<b>wvu</b>
<b>tsr</b>
<b>qpo</b>
</a>
I peut utiliser la requête XPath suivante pour sélectionner la troisième <b> noeud (<b> tsr </b >):
a/b[.='tsr']
Ce qui est bien, 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-il possible?
edit: J'ai oublié de mentionner que j'utilise .net 2 donc c'est xpath 1.0!
Mise à jour: Ended à l'aide James Sulak « s excellent answer. 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);
}
'Coz J'utilise .net et soit il ou je ne peux pas gérer la puissance avec laquelle je suis allé: int position = doc.SelectNodes ("a/b [. =' Tsr ']/previous-Sibling :: b ") .Compte + 1; si (position> 1 || doc.SelectSingleNode ("a/b [. = 'tsr']")! = null) // Vérifiez le nœud {// existe réellement Faites de la magie ici} –
en zéro langues indexées vous n » t besoin le +1 –