gpt4 book ai didi

xml - XPath 1.0:列出不同的值及其出现的次数

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

我正在生成一个报告,该报告从XML文件中提取信息。

<?xml version="1.0" encoding="UTF-8"?>
<JoinedRoot>
<FlexoPlateReport>
<Device>A</Device>
</FlexoPlateReport>
<FlexoPlateReport>
<Device>B</Device>
</FlexoPlateReport>
<FlexoPlateReport>
<Device>A</Device>
</FlexoPlateReport>
<FlexoPlateReport>
<Device>C</Device>
</FlexoPlateReport>
<FlexoPlateReport>
<Device>C</Device>
</FlexoPlateReport>
<FlexoPlateReport>
<Device>B</Device>
</FlexoPlateReport>
<FlexoPlateReport>
<Device>A</Device>
</FlexoPlateReport>
</JoinedRoot>


基本上,到目前为止,我所做的都是将XPath表达式组合在一起,该列表将列出不同的设备。上面的XML中有三个设备(A,B和C)。下面是XPath表达式。

/JoinedRoot/FlexoPlateReport[not( Device/text()=preceding-sibling::FlexoPlateReport/Device/text())]/Device/text()


我仅限于XPath 1.0,否则我将使用distinct-values()函数。接下来,我要返回第一个XPath表达式中列出的每个设备的计数。例如,上面的XML将给我以下几点:

答:3
B:2
C:2

是否可以在一个表达式中同时返回名称和计数?如果不是,是否存在一个XPath表达式,该表达式仅返回每个不同设备的计数。我将永远不知道报告中有多少个不同的设备或Device元素的值是什么。因此,我不能简单地为特定设备名称编写count()函数。

提前致谢!

最佳答案

如果您受限于XPath 1.0,则无法通过单个查询来实现。您需要一个两遍过程。如果您以编程方式进行这些查询,请使用相应的编程语言(XSLT,PHP,JavaScript)来根据第一个查询的结果触发计数查询。

count(/JoinedRoot/FlexoPlateReport/Device[.='A'])

关于xml - XPath 1.0:列出不同的值及其出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45247335/

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