Có ai biết cách lấy vị trí của một nút bằng xpath không?
Giả sử tôi có xml sau:
<a>
<b>zyx</b>
<b>wvu</b>
<b>tsr</b>
<b>qpo</b>
</a>
Tôi có thể sử dụng truy vấn xpath sau để chọn <b> nút thứ ba (<b> tsr </b>):
a/b[.='tsr']
Tất cả đều tốt và tốt nhưng tôi muốn trả lại vị trí thứ tự của nút đó, giống như:
a/b[.='tsr']/position()
(nhưng hiệu quả hơn một chút!)
Nó thậm chí có thể?
chỉnh sửa : Quên đề cập là tôi đang sử dụng .net 2 nên nó là xpath 1.0!
Cập nhật : Kết thúc bằng câu trả lời xuất sắc của James Sulak . Đối với những người quan tâm, đây là cách triển khai của tôi trong 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);
}