Quelqu'un sait comment obtenir la position d'un nœud à l'aide de xpath?
Dire que j'ai le code 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 la troisième <b> node (<b>tsr</b>):
a/b[.='tsr']
Ce qui est bien et bon, mais je veux revenir à la position ordinale de ce nœud, quelque chose comme:
a/b[.='tsr']/position()
(mais en un peu plus de travail!)
Est-il même possible?
edit: j'ai Oublié de mentionner le matin à l'aide .net 2 il est donc xpath 1.0!
Mise à jour: Fini à l'aide de James, Sulak's excellente réponse. Pour ceux qui sont intéressés, voici mon application 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);
}