gpt4 book ai didi

xml - 如何使用xpath或xquery基于父节点中的同级元素提取元素的值?

转载 作者:行者123 更新时间:2023-12-03 16:15:22 26 4
gpt4 key购买 nike

我有一个这样的有效载荷,

<Payload> 
<Identifier>
<Type>typeA</Type>
<Value>valueOfA</Value>
</Identifier>
<Identifier>
<Type>typeB</Type>
<Value>valueOfB</Value>
</Identifier>
</Payload>


我想使用xpath或xquery提取元素'typeA'的值以进一步进行处理,以便转换后的有效负载如下所示

<transformedPayload>
<typeA>valueOfA</typeA>
<typeB><valueOfB</typeB>
</transformedPayload>


请帮忙。
提前致谢。

最佳答案

这在XQuery中非常容易完成。以下查询可满足您的需求:

<transformedPayload>{
for $ident in /Payload/Identifier
return element { $ident/Type } { $ident/Value/text() }
}</transformedPayload>


如果只想选择所有 Identifier的子集,则可以使用 where子句:

<transformedPayload>{
for $ident in /Payload/Identifier
where $ident/Type eq 'typeA'
or $ident/Type eq 'typeB'
return element { $ident/Type } { $ident/Value/text() }
}</transformedPayload>


您还可以使用 =运算符及其存在的语义来使其更加紧凑:

<transformedPayload>{
for $ident in /Payload/Identifier
where $ident/Type = ('typeA', 'typeB')
return element { $ident/Type } { $ident/Value/text() }
}</transformedPayload>

关于xml - 如何使用xpath或xquery基于父节点中的同级元素提取元素的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43104180/

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