Xquery - 如何将地图应用于序列?

Ben*_*Ben 1 xquery map

我想将一个函数应用于序列中的每个元素并获得结果.有人能指出我正确的方向吗?

例如

declare function local:ToTextNode($string as xs:string) as Node()
{
text { $string }
};
Run Code Online (Sandbox Code Playgroud)

我想将以上内容应用于:

('foo','bar','baz')
Run Code Online (Sandbox Code Playgroud)

...并获得一系列节点.

Jen*_*rat 5

使用简单的map运算符!,但它需要一个实现XQuery 3.0的XQuery处理器.

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

('foo','bar','baz') ! local:ToTextNode(.)
Run Code Online (Sandbox Code Playgroud)

您不需要为此定义函数,也可以直接使用文本节点构造函数:

('foo','bar','baz') ! text { . }
Run Code Online (Sandbox Code Playgroud)

如果你的XQuery引擎不支持map运算符,你将不得不使用flwor表达式:

for $i in ('foo','bar','baz')
return text { $i }
Run Code Online (Sandbox Code Playgroud)