Кто-нибудь знает, как получить позицию узла с помощью xpath?
Скажем, у меня есть следующий xml:
<a>
<b>zyx</b>
<b>wvu</b>
<b>tsr</b>
<b>qpo</b>
</a>
Я могу использовать следующий запрос xpath для выбора третьего <b> узла (<b> tsr </b>):
a/b[.='tsr']
Это все хорошо, но я хочу вернуть порядковый номер этого узла, например:
a/b[.='tsr']/position()
(но немного больше работает!)
Это вообще возможно?
edit : Забыл упомянуть, что я использую .net 2, поэтому это xpath 1.0!
Обновление : Законченное использование Джеймс Сулак «s отличного ответа . Для тех, кому интересно, вот моя реализация на 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);
}