我需要找到一种方法来评估C#.net中的计数Xpath表达式。目前我正在遍历XML文档,最终我在一个特定的节点上。我需要弄清楚我在那个节点上。节点由具有值的属性区分。
<A>
<B>
<C>
<D attr="10"/>
</C>
<C>
<D attr="10"/>
</C>
<C>
<D attr="11"/>
</C>
<C>
<D attr="10"/><!--Imagine I am here... This would be the 3rd D attr that equals 10-->
</C>
<C>
<D attr="12"/>
</C>
</B>
</A>
让我说我在第二个 我目前打开了一个XMLDocument。我选择了一个节点列表......我担心如果我打开一个XpathDocument,我将失去我在xmlNode列表中的位置。我想我可以通过使用xpath获取attr值,然后使用XpathDocument并以这种方式评估该表达式。我希望可能有一种更简单的方法。
感谢。
答案 0 :(得分:1)
使用强>:
(int) (theDocument.CreateNavigator()
.Evaluate("count(/A/B/C[D/@attr = 10][3]/preceding-sibling::C) +1"))
在提供的XML文档上,结果为:
4