XQuery:如何连接两个构造函数?

时间:2009-04-08 08:33:22

标签: xquery

我有一个包含构造函数的函数:

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))

加号当然是错误的。我该怎么用?

1 个答案:

答案 0 :(得分:4)

我假设你想为每个 $ val 返回两个节点,在这种情况下你想要使用运算符,如下所示:

for $val in ...
...
return (local:Construct(data($val/id1)), local:Construct(data($val/id2)))

需要额外的括号,否则您将尝试将local:Construct(data($val/id2))连接到FLWOR的结果上,这会导致“未定义的变量”错误。