gpt4 book ai didi

xml - 使用 XPATH 从不同的子元素中提取值

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

目前我面临一个xml文件,它基本上如下所示,但包含数千个元素:

<Data>
<Elements>
<Element>
<Subentry1>Value1</Subentry1>
<Subentry2>MoreData</Subentry2>
</Element>
<Element>
<Subentry1>Value2</Subentry1>
<Subentry2>MuchMoreData</Subentry2>
</Element>
</Elements> </Data>

我正在使用 Ubuntu,并希望打印值 Subentry1 和 Subentry2 的每个组合。对于上述示例,希望的输出是:

Value1_MoreData

Value2_MuchMoreData


在阅读了有关 XPATH 字符串连接函数的内容并尝试了不支持 XPATH 2.0 的无尽 ubuntu 工具后,我最终得到了以下工作解决方案(bash 脚本):
totalNumber=$(xmllint --xpath 'count(//Element)' example.xml)
i=1
while [ $i -le $totalNumber ]
do
xmllint --xpath "concat((//Element)[$i]/Subentry1/text(),'_',(//Element)[$i]/Subentry2/text())" example.xml
echo -e ""
let i=$i+1
done
但是,如果您想处理例如,这是减慢速度的方式。 10000 个元素。如果有专家能给我提示,我会很高兴。

最佳答案

如果您能够使用 xmlstarlet , 你可以做:

==> xml sel -t -m "/Data/Elements/Element" -v "concat(Subentry1,'_',Subentry2)" -n test.xml
Value1_MoreData
Value2_MuchMoreData

关于xml - 使用 XPATH 从不同的子元素中提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45826535/

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