2

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

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

加号当然是错误的。我应该改用什么?

4

1 回答 1

4

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

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

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

于 2009-04-08T09:44:58.757 回答