ใครทราบวิธีรับตำแหน่งของโหนดโดยใช้ 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!
ปรับปรุง : สิ้นสุดการใช้เจมส์ Sulakเป็นคำตอบที่ดี สำหรับผู้ที่สนใจนี่คือการใช้งานของฉันใน 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);
}