有人知道如何使用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!
更新:最后使用了詹姆斯·苏拉克(James 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);
}