2013-07-05 22 views
1

我想將一個函數應用於序列中的每個元素並獲得結果。有人能指引我朝着正確的方向嗎?Xquery - 如何將地圖應用於序列?

例如

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

我想上述適用於:

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

...,並得到節點序列。

+1

有在你的函數的一些語法錯誤:它是'節點()','不XS:node',你不能用'return'沒有任何'let'或'for'。 –

回答

5

使用simple map operator !,但它需要一個實現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引擎不支持地圖運營商(還),你將不得不使用FLWOR表達式:

for $i in ('foo','bar','baz') 
return text { $i } 
相關問題