如何在XQuery的for循环中实现字符串拼接并解决类型转换报错
报错原因
函数声明的返回类型为单个xs:string,但for循环遍历1~10后返回的是由10个字符串组成的序列,XQuery无法自动将序列强转为单个字符串,因此触发了XDMP-AS类型转换错误。
解决方法
使用string-join()函数将循环生成的字符串序列拼接为单个字符串即可,你可以按需指定拼接分隔符(空字符、逗号、换行符等都支持)。
修改后的完整代码如下:
xquery version "1.0-ml"; 'use strict'; declare function local:Do_the_string($t as xs:string) as xs:string{ (: t为传入的节点路径参数 :) let $test2 := "ll" (: 外层用string-join把循环返回的序列转成单个字符串 :) let $data := string-join( for $n in 1 to 10 (: 这里可以替换为你自己的拼接逻辑 :) return concat("test2", $n) , "") (: 第二个参数为分隔符,空代表直接拼接,需要换行可以换成" " :) return $data };
内容的提问来源于stack exchange,提问作者Raimo
相关产品推荐
相关产品推荐

