我有一个包含构造函数的函数:
declare function local:Construct ($id)
{
<tag id="{$id}"/>
}
我使用函数来回复“FLWOR”:
for $val in ...
...
return local:Construct(data($val/id))
这很有效。
现在我想连接两个像这样的构造
for $val in ...
...
return local:Construct(data($val/id1)) + local:Construct(data($val/id2))
加号当然是错误的。我该怎么用?
答案 0 :(得分:4)
我假设你想为每个 $ val 返回两个节点,在这种情况下你想要使用,运算符,如下所示:
for $val in ...
...
return (local:Construct(data($val/id1)), local:Construct(data($val/id2)))
需要额外的括号,否则您将尝试将local:Construct(data($val/id2))
连接到FLWOR的结果上,这会导致“未定义的变量”错误。