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