XQuery:使用FLWOR方式填充数组

时间:2017-01-17 14:53:31

标签: xquery basex flwor

我有一个数组,我想用特定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"]

1 个答案:

答案 0 :(得分:4)

XQuery是一种功能语言。因此,一旦声明了变量,就不能重新赋值。

以下代码可以解决这个问题:

array {
  for $child in $collection
  where contains(data($child/node1), "Hey")
  return $child/node2
}

请注意,值的本机XQuery数据类型是一个序列。根据您的使用情况,您可能根本不需要数组。