有人知道如何使用 XPath 获取节点的位置吗?
假设我有以下 xml:
<a>
<b>zyx</b>
<b>wvu</b>
<b>tsr</b>
<b>qpo</b>
</a>
我可以使用以下 xpath 查询来选择第三个 < b > 节点(< b > tsr ) :
a/b[.='tsr']
这很好,但是我想要 返回这个节点的序号位置,比如:
a/b[.='tsr']/position()
(但要更努力一点!)
这有可能吗?
编辑 : 忘了提到我正在使用. net 2,因此它是 xpath 1.0!
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);
}