循环前的静态内容

Static content before loop

我是 XQuery 新手。我在下面写了查询,它运行良好并从一个 csv 格式生成结果 xml 存储在 Marklogic 中。

xquery version "0.9-ml"
let $data := someQuery
return 
for $i in $data

return
fn:string-join((

$i/PATHTOFILED_1/text(),
$i/PATHTOFILED_2/text(),
.
.
.
.
$i/PATHTOFILED_N/text()

),","
)

输出:

abc,def,adc,
dff,eef,ddf,
.
.
.
.
fff,eed,ddg,

我有一个新的要求,就是在数据前加上static headers。 预期的输出会像

预期输出:

HEAD1, HEAD2, HEAD3,
abc,def,adc,
dff,eef,ddf,
.
.
.
.
fff,eed,ddg,

只需在第一行添加 HEAD1、HEAD2、HEAD3,。 headers 不是 XML 的一部分。它们应该是具有静态数据的简单字符串查询的一部分,并且可以随时在查询本身中进行修改。 我试图将以下代码段添加到查询中。但是在 Marklogic 查询控制台中查询不是 运行。

concat("HEAD1,"HEAD2","HEAD3"),

非常感谢任何解决方案。 提前致谢。

在 FLWOR 表达式前添加:

xquery version "1.0-ml";

string-join(("HEAD1","HEAD2","HEAD3"),","),
let $data := someQuery
return 
for $i in $data

return
fn:string-join((

$i/PATHTOFILED_1/text(),
$i/PATHTOFILED_2/text(),
.
.
.
.
$i/PATHTOFILED_N/text()

),","
)

顺便说一句,除非您有非常令人信服的理由,否则我真的不会使用 0.9 毫升的方言。它有效,但它实际上只是为了兼容性而存在。