2

コンストラクターを含む関数があります。

declare function local:Construct ($id)
{
  <tag id="{$id}"/>
}

「FLWOR」の代わりに関数を使用します。

for $val in ...
...
return local:Construct(data($val/id))

これは機能します。

今、このように2つのコンストラクトを連結したい

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

プラス記号はもちろん間違っています。代わりに何を使用すればよいですか?

4

1 に答える 1

4

$valごとに 2 つのノードを返したいと仮定します。その場合、次のように,演算子を使用します。

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 に答える