打印以“,”分隔的值;及;在xquery中

打印以“,”分隔的值;及;在xquery中,xquery,marklogic,xquery-sql,xquery-3.0,xquery-3.1,Xquery,Marklogic,Xquery Sql,Xquery 3.0,Xquery 3.1,我有一个变量,它返回一系列值。我想在函数中打印它们,它们应该用“and”分隔,但是序列的值的数量不同。它有时返回更多或更少的值(我使用的是xquery) 假设变量是$var,它返回如下值 INV_1 INV_2 INV_3 INV_4 我正在努力做到以下几点:- "(" || fn:string-join($i, " and ") || ")" 我希望以以下方式输出:- (INV_1 and INV_2 and INV_3 and

我有一个变量,它返回一系列值。我想在函数中打印它们,它们应该用“and”分隔,但是序列的值的数量不同。它有时返回更多或更少的值(我使用的是xquery) 假设变量是$var,它返回如下值

INV_1
INV_2
INV_3
INV_4
我正在努力做到以下几点:-

"(" || fn:string-join($i, " and ") || ")"
我希望以以下方式输出:-

(INV_1 and INV_2 and INV_3 and INV_4)
然而,我得到的是:

 (INV_1)(INV_2)
不知道“和”到哪里去了


有人能给我推荐正确的代码吗?

那么您的尝试在哪里/如何失败?它看起来很好。考虑发布一个最小但完整的代码示例,给出你所展示的结果。恐怕我对Marklogic了解不多,但如果您展示一个声明和绑定变量值的最小完整示例,希望其他人能够解释您的结果。您给出的代码应该可以工作,因此,我怀疑是更广泛的程序导致了您所看到的问题。您可能会迭代for循环中的每个项,然后对每个执行字符串联接的项进行迭代。因此,从来没有超过一个,也从来没有添加
。显示一个更完整的代码示例,我们可以验证这一点。好吧,您认为您希望对它们进行迭代,但不应该。删除for循环并使用具有值序列的变量作为
string-join()
的第一个参数,它将生成所需的结果。