XQuery:以 FLWOR 方式填充数组
XQuery: Fill array the FLWOR way
我有一个数组,我想用从特定 XML 节点获取的字符串填充它,就像这个伪代码示例中的那样:
let $array := array {}
for $child in $collection
where contains(data($child), "Hey")
do $array := array:append($array, data($child))
执行此类操作的正确代码会是什么样子?
所以如果我有这个 XML
<root>
<child>Hey</child>
<child>Ho</child>
<child>Hey Ho</child>
</root>
我希望数组是
array ["Hey", "Hey Ho"]
XQuery 是一种函数式语言。因此,变量一旦声明就不能重新赋值。
下面的代码应该可以解决问题:
array {
for $child in $collection
where contains(data($child/node1), "Hey")
return $child/node2
}
请注意,值的本机 XQuery 数据类型是序列。根据您的用例,也许您根本不需要数组。
我有一个数组,我想用从特定 XML 节点获取的字符串填充它,就像这个伪代码示例中的那样:
let $array := array {}
for $child in $collection
where contains(data($child), "Hey")
do $array := array:append($array, data($child))
执行此类操作的正确代码会是什么样子?
所以如果我有这个 XML
<root>
<child>Hey</child>
<child>Ho</child>
<child>Hey Ho</child>
</root>
我希望数组是
array ["Hey", "Hey Ho"]
XQuery 是一种函数式语言。因此,变量一旦声明就不能重新赋值。
下面的代码应该可以解决问题:
array {
for $child in $collection
where contains(data($child/node1), "Hey")
return $child/node2
}
请注意,值的本机 XQuery 数据类型是序列。根据您的用例,也许您根本不需要数组。