gpt4 book ai didi

c# - Xpath查找两个不同元素的第一次出现

转载 作者:太空宇宙 更新时间:2023-11-03 18:09:32 24 4
gpt4 key购买 nike

使用下面的示例,我想使用 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。

最佳答案

您想按文档顺序(元素出现的顺序)扫描树。好像这是默认的搜索顺序,你所要做的就是选择第一个元素,即 <b/>。或 <d/>节点:

//*[local-name() = 'b' or local-name() = 'd'][1]

如果你想要名字,再加一个local-name(...)调用:

local-name(//*[local-name() = 'b' or local-name() = 'd'][1])

关于c# - Xpath查找两个不同元素的第一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19014800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com