1

シーケンス内の各要素に関数を適用して結果を取得したいと思います。誰かが私を正しい方向に向けることができますか?

例えば

declare function local:ToTextNode($string as xs:string) as Node()
{
text { $string }
};

上記を次のように適用したい:

('foo','bar','baz')

...そして一連のノードを取得します。

4

1 に答える 1

5

単純なマップ演算子!を使用しますが、XQuery 3.0 を実装する XQuery プロセッサが必要です。

declare function local:ToTextNode($string as xs:string) as node()
{
  text { $string }
};

('foo','bar','baz') ! local:ToTextNode(.)

そのための関数を定義する必要はありません。テキスト ノード コンストラクターを直接使用することもできます。

('foo','bar','baz') ! text { . }

XQuery エンジンが map 演算子を (まだ) サポートしていない場合は、flwor 式を使用する必要があります。

for $i in ('foo','bar','baz')
return text { $i }
于 2013-07-05T14:57:35.143 に答える