Marklogic是否具有将xml转换为类似于json:transform-to-json的csv的函数。我可以转换为json格式,但不知道如何从xml转换为csv格式并保存到磁盘。
let $uris := cts:uris((),
(),
cts:and-query((
cts:collection-query("/citation"),
cts:field-range-query("sdt","<","2017-10-01"),
cts:field-range-query("edt",">","2016-09-30"),
cts:or-query(cts:field-range-query("fy","=",2017)),
cts:not-query(cts:field-word-query("dc","a","case-insensitive"))
))
)
for $uri in $uris
let $doc := fn:doc($uri)
let $copymeta := <meta:Metadata>
{$doc//meta:Metadata/*}
</meta:Metadata>
let $newdoc := <mdr:record>
{ $copymeta }
</mdr:record>
(: get information for each element:)
let $metadata := $newdoc/meta:Metadata
let $Title := ($metadata/meta:Title)
let $Title :=fn:string-join($Title,",")
let $DateOfSummary:= ($metadata/meta:DateOfSummary)
let $DateOfSummary:=fn:string-join($DateOfSummary,",")
let $quote:=
for $value in($Title,$DateOfSummary)
return fn:concat(""",$value,""")
答案 0 :(得分:2)
您可以在服务器端JavaScript,XQuery或XSLT中编写转换,迭代XML文档,将CSV行投影为字符串。
在MarkLogic 9上,您可以编写一个TDE模板,从XML文档中投射CSV行,
http://docs.marklogic.com/tde:node-data-extract
http://docs.marklogic.com/guide/app-dev/TDE
http://docs.marklogic.com/guide/sql/creating-template-views
并将输出方法设置为&#34; sparql-results-csv&#34;在将预计的行返回给客户端之前:
http://docs.marklogic.com/xdmp:set-response-output-method
根据输出方法,appserver应将行序列化为CSV。
如果需要根据查询从文档中提取CSV行,可以使用TDE索引文档并将请求发送到/ v1 / rows端点:
http://docs.marklogic.com/REST/client/row-management
希望有帮助,