Xpath kullanarak bir düğümün konumunu nasıl alacağını bilen var mı?
Aşağıdaki xml'ye sahip olduğumu varsayalım:
<a>
<b>zyx</b>
<b>wvu</b>
<b>tsr</b>
<b>qpo</b>
</a>
Üçüncü <b> düğümünü (<b> tsr </b>) seçmek için aşağıdaki xpath sorgusunu kullanabilirim:
a/b[.='tsr']
Hepsi iyi ve güzel ama bu düğümün sıra konumunu döndürmek istiyorum , şöyle bir şey:
a/b[.='tsr']/position()
(ama biraz daha çalışıyor!)
Hatta mümkün mü?
düzenleme : .net 2 kullandığımı söylemeyi unuttum, bu yüzden xpath 1.0!
Güncelleme : kullanarak sona erdi James Sulak 'ın mükemmel bir cevap . İlgilenenler için işte benim C # uygulamam:
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);
}