2009-04-08 3 views
2

私は、コンストラクタが含まれている機能を持っている:XQuery: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

私はそうのように、あなたがを使用したい場合には、各$ valののための2つのノード、オペレータを返すようにしたいと仮定します。

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

余分な括弧が必要とされている、またはあなたlocal:Construct(data($val/id2))をFLWORの結果に連結しようとしています。その結果、「未定義の変数」エラーが発生します。

+0

ありがとうございます。これは私が必要とするものです。 – danatel

関連する問題