Хто-небудь знає, як отримати позицію вузла за допомогою 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()
(але трохи більше працює!)
Це взагалі можливо?
редагувати : забув згадати, що я використовую .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);
}