gpt4 book ai didi

xml - XPath 头疼,查找属性在范围之间的节点

转载 作者:行者123 更新时间:2023-12-03 17:20:18 27 4
gpt4 key购买 nike

这个头疼,所以有人可以给我留言吗?

XML 就是这样(不是真正的东西,但为了清楚起见,这是一个示例):

<root>
<groups name="A">
<entry from="1" to="10" />
</groups>
<groups name="A">
<entry from="11" to="20" />
<entry from="21" to="30" />
</groups>
<groups name="A">
<entry from="31" to="40" />
<entry from="41" to="50" />
<entry from="51" to="60" />
</groups>
</root>

给定一个入口编号,我想找到该编号所在的入口节点。应该只有一个节点匹配(如果有)。

这是我正在使用的xpath:

/root/groups/entry[@from >= 45 和 @to <= 45]

我也尝试将属性包装在 number() 中,但仍然没有运气。

这并没有返回我所期望的,事实上它什么也没返回,我不明白为什么!我错过了什么?

编辑:更正了我的开头组标签的错字……对不起。

最佳答案

该特定表达式没有返回任何内容,因为没有 entry满足条件的元素。首先,我建议将其更改为:

/root/groups/entry[@from <= 45 and @to >= 45]

另外,如果这确实是您的源 XML,那么它将无法工作,因为它是无效的。你有 <group>打开标签,但 </groups>结束标签。他们不匹配。您应该将它们全部更改为 groupgroups ,并且您的 XPath 表达式应该反射(reflect)这一点。

我针对您的 XML 的修改版本(将 group 更改为 groups )测试了该表达式,它按预期返回了一个结果:
<entry from="41" to="50" />

关于xml - XPath 头疼,查找属性在范围之间的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1164612/

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