【发布时间】:2013-09-25 20:39:47
【问题描述】:
使用下面的示例,我想使用 xPath 来查找两个不同元素的第一次出现。例如,我想弄清楚是 b 还是 d 先出现。我们可以清楚地看出 b 出现在 d 之前(自上而下,而不是在树级别)。但是,如何使用 xpath 解决这个问题?
<a>
<b>
</b>
</a>
<c>
</c>
<d>
</d>
现在,我通过获取节点集中的第一个元素来找到节点(在本例中为 b 和 d),我使用以下代码找到它:
String xPathExpression = "//*[local-name()='b']";
XPathNodeIterator nodeSet = (XPathNodeIterator)navigator.Evaluate(xPathExpression);
和
String xPathExpression = "//*[local-name()='d']";
XPathNodeIterator nodeSet = (XPathNodeIterator)navigator.Evaluate(xPathExpression);
现在使用 xpath,我只是不知道哪个先出现,b 还是 d。
【问题讨论】:
-
你需要用 xpath 做这个吗?这可以在构建树后使用 LINQ to XML 轻松解决。
-
我很乐意看到如何使用 LINQ to XML 来完成这项工作。效率真的是我唯一关心的问题。
标签: c# xml xpath xpathnavigator