1

我想对序列中的每个元素应用一个函数并得到结果。有人可以指出我正确的方向吗?

例如

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

我想将上述内容应用于:

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

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

4

1 回答 1

5

使用简单的 map 运算符!,但它需要一个实现 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 回答