gpt4 book ai didi

xml - 如何检查节点 $N 是否存在于 XQuery 中的节点序列 $S 中?

转载 作者:行者123 更新时间:2023-12-03 16:10:30 27 4
gpt4 key购买 nike

我知道 XQuery 中采用 XPath 表达式的每个变量都可以包含一组节点

let $x := //cities[@population > '50000']//*

或者
let $y := //something/following::*

我想知道是否有一个 bool 函数来检查 $z属于这些节点集,例如 $x$y ?

如果不是,那么如果第一个变量(节点序列)包括第二个变量(一个节点或节点序列),我该如何声明这样的函数以获取两个变量并返回 true

出于特定目的,我做了以下测试:
declare function local:inside($y,$x) as xs:boolean
{
let $r := ? (: want to know if $y include $x or not :)
return $r
};
let $db := doc('products.xq')
let $items := $db/item//*
let $pricesInItems := $db//price[$items//.] (: $db//price[local:inside($items, .)] :)
(: ^ it doesn't work, by the way :)
return $pricesInItems

对于这个数据库:
<page>
<products>
<item foo="f1">
<price>100 </price>
</item>
<item foo="f2">
<price>200 </price>
</item>
</products>
<price>300 </price>
</page>

一个谓词表达式或一个函数,它选择 $db/item//* 内的所有价格.请注意,这只是一个示例,我想要一个适用于任何两个变量的通用隶属函数或谓词表达式。

最佳答案

如果您使用 =运算符,它将使用基于集合的逻辑。例如:

let $set := (2, 4, 6, 8, 10)
return ((6 = $set), (7 = $set))

=> (true(), false())

这同样适用于两组之间的比较:
(1, 2, 3, 4) = (4, 5, 6)
=> true()

关于xml - 如何检查节点 $N 是否存在于 XQuery 中的节点序列 $S 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30855140/

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