gpt4 book ai didi

java - 在 java、OSB、XQuery 中从 XML 获取不同的值

转载 作者:行者123 更新时间:2023-11-30 04:07:10 26 4
gpt4 key购买 nike

<data>  
<info>
<name>A</name>
</info>
<info>
<name>B</name>
</info>
<info>
<name>A</name>
</info>
<info>
<name>C</name>
</info>
<info>
<name>B</name>
</info>
</info>

有没有办法获得像java或OSB或Xquery中的结果不同值在 Oracle 服务总线中不起作用,因此我希望使用 java 方法来获取唯一名称

<data>  
<info>
<name>A</name>
</info>
<info>
<name>B</name>
</info>
<info>
<name>C</name>
</info>
</data>

最佳答案

我假设您想根据名称值对所有信息元素进行分组,并从每组中仅输出一个信息?

let $data :=
<data>
<info>
<name>A</name>
</info>
<info>
<name>B</name>
</info>
<info>
<name>A</name>
</info>
<info>
<name>C</name>
</info>
<info>
<name>B</name>
</info>
</data>
return
<data>{
let $distinct-names := distinct-values($data/info/name)
for $name in $distinct-names
let $infos := $data/info[name eq $name]
return
$infos[1]
}</data>

我认为您还可以使用“group by”扩展:

let $data :=
<data>
<info>
<name>A</name>
</info>
<info>
<name>B</name>
</info>
<info>
<name>A</name>
</info>
<info>
<name>C</name>
</info>
<info>
<name>B</name>
</info>
</data>
return
<data>{
for $info in $data/info
group $info as $infos by $info/name as $name
return
$infos[1]
}</data>

以上两个查询都会返回:

<data>
<info><name>A</name></info>
<info><name>B</name></info>
<info><name>C</name></info>
</data>

关于java - 在 java、OSB、XQuery 中从 XML 获取不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20494042/

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