gpt4 book ai didi

xml - XQuery列表节点包含所有属性

转载 作者:行者123 更新时间:2023-12-03 16:18:48 44 4
gpt4 key购买 nike

我有这样的xml数据文件。

<info>
<property id="p1" type="land">
<name>Time Square</name>
<owner type="person" id="x01" />
<owner type="company" id="x01" />
</property>
<property id="p2" type="building">
<name>HBE Complex</name>
<owner type="company" id="x01" />
<owner type="company" id="x02" />
<owner type="person" id="x02" />
</property>
<property id="p3" type="land">
<name>UNE Home</name>
<owner type="company" id="x02" />
<owner type="person" id="x02" />
</property>
<!-- more properties -->
</info>


我想列出所有具有所有类型属性的公司ID。
例如公司ID = x02,拥有土地和建筑物。

现在,我不知道如何编写它,但是我觉得可能必须使用 every in satisfies来检查每个元素。如果我发现更多代码,我将更新我的代码。

是否有任何想法来查找跨元素的属性。

最佳答案

查找所有不同的公司ID,然后针对每个ID查找所有属性,并查看建筑物和土地的类型。

for $id in distinct-values(//owner[@type='company']/@id)
let $properties := //property[owner[@type='company' and @id=$id]]
where $properties/@type='land' and $properties/@type='building'
return $id


satisfies实现一种隐式循环。您永远不需要它,但是有时可能会导致代码更具可读性。您可以使用 satisfies这样的示例:

(: snip :)
where every $type in ('land', 'building') satisfies $properties/@type=$type
(: snip :)


如果您要检查的属性类型超过此组,这将特别有意义。

关于xml - XQuery列表节点包含所有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20640542/

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