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