gpt4 book ai didi

xml - XPATH sum函数

转载 作者:行者123 更新时间:2023-12-03 16:14:11 24 4
gpt4 key购买 nike

有没有一种方法可以在XPATH中使用sum函数,因此它将在XML文件中的子节点上工作?

给定以下XML文件。

<?xml version='1.0' encoding='UTF-8'?>
<countries>
<country name ='Israel'>
<city num = '300001'>'TelAviv'</city>
<city num = '300000'>'Jerusalem'</city>
<city num = '400000'>'Haifa'</city>
</country>
<country name ='USA'>
<city num = '800000'>'Los Angeles'</city>
<city num = '500000'>'New York'</city>
<city num = '1000'>'Washington'</city>
</country>
<country name ='Italy'>
<city num = '998999'>'Rome'</city>
<city num = '1000'>'Vatican'</city>
</country>
<country name ='LalaLand'>
<city num = '100'>'A'</city>
<city num ='200'>'B'</city>
</country>
</countries>


任务是返回所有国家/地区的名称,这些国家/地区的所有居民的总和(num属性)大于一百万。
经过几次尝试,我能够编写以下查询:

countries/country[sum(//country/city/@num) > 1000000]/@name


但是查询汇总了所有国家/地区的所有公民(人数),而不是我们被要求做的事情。 (查询返回的是3300300)

我们应该得到以色列和美国,这两个人口都超过一百万。

有关优化和正确解决方案的建议?

最佳答案

您只需要汇总当前国家/地区节点(./city)下的城市,而不是所有国家/地区节点(//country/city)下的城市:

countries/country[sum(./city/@num) > 1000000]/@name


输出:

Attribute='name=Israel'
Attribute='name=USA'

关于xml - XPATH sum函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56218457/

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