是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,
我有新要求在数据之前添加静态标头。 预期的输出就像
预期产出:
HEAD1, HEAD2, HEAD3,
abc,def,adc,
dff,eef,ddf,
.
.
.
.
fff,eed,ddg,
只需在顶行添加 HEAD1,HEAD2,HEAD3,即可。标头不是XML的一部分。它们应该是使用静态数据的简单字符串中的查询的一部分,并且可以在查询本身中随时修改。 我试图将以下代码段添加到查询中。但查询未在Marklogic查询控制台中运行。
concat("HEAD1,"HEAD2","HEAD3"),
任何解决方案都非常感谢。 提前谢谢。
答案 0 :(得分:3)
在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毫升的方言。它可以工作,但实际上它仍然存在兼容性。