Ada yang tahu cara mendapatkan posisi node menggunakan xpath?
Katakanlah saya memiliki xml berikut:
<a>
<b>zyx</b>
<b>wvu</b>
<b>tsr</b>
<b>qpo</b>
</a>
Saya dapat menggunakan kueri xpath berikut untuk memilih <b> node (<b> tsr </b>) ketiga:
a/b[.='tsr']
Yang mana semuanya baik dan bagus tetapi saya ingin mengembalikan posisi ordinal dari simpul itu, seperti:
a/b[.='tsr']/position()
(tapi sedikit lebih berhasil!)
Apakah itu mungkin?
edit : Lupa menyebutkan saya menggunakan .net 2 jadi xpath 1.0!
Pembaruan : Akhirnya menggunakan jawaban yang sangat baik dari James Sulak . Bagi yang tertarik, inilah implementasi saya di 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);
}