Xquery 循环前的静态内容

Xquery 循环前的静态内容,xquery,marklogic,Xquery,Marklogic,我是XQuery的新手。我在下面写了一个查询,它工作得很好,并且从一个 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,

我是XQuery的新手。我在下面写了一个查询,它工作得很好,并且从一个 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,
我有一个新的要求,在数据之前添加静态头。 预期的输出将是

预期产出:

HEAD1, HEAD2, HEAD3,
abc,def,adc,
dff,eef,ddf,
.
.
.
.
fff,eed,ddg,
只需在顶行添加HEAD1、HEAD2、HEAD3、。标题不是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毫升方言,除非你有非常令人信服的理由这样做。它是有效的,但它实际上只是为了兼容性而存在

太棒了。。而且很清楚。。你能告诉我一个学习XQuery for Marklogic和exist的好教程吗。谷歌展示了很多,我很困惑。@user991255一般来说,我们不推荐这里的教程或书籍。但是,您可能对这本新书感兴趣: