Marklogic - 将xml转换为csv

时间:2018-04-12 13:57:43

标签: marklogic

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("&#34;",$value,"&#34;")

1 个答案:

答案 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

希望有帮助,