使用 gradle mlExportToFile 在单个 XML 中导出 Header & Body

Export Header & Body in a single XML using gradle mlExportToFile

ML Gradle 导出到文件不提供在单个 XML 有效负载

中导出 header 和 body 的方法

我尝试使用以下方法导出 body,

gradle mlExportToFile -PwhereUriPattern=*.xml -PexportPath=c:\export\export.xml -PfileHeader="<results>" -PfileFooter="</results>"

上面的导出 gradle 导出语句得到以下结果,

<results>
 <customer id="1">
 .
 .
 </customer>
 <customer id="2">
 .
 .
 </customer>
</results>

但是,我希望输出是,

<results>
  **<TransactionRequestDt>2019-15-02T13:22:01</TransactionRequestDt>
  <VersionCd>1.0</VersionCd>
  <RequestorSystemCd>05</RequestorSystemCd>**
 <body>
     <customer id="1">
     .
     .
     </customer>
     <customer id="2">
     .
     .
     </customer>
  <body>
</results>

TransactionRequestDt、VersionCd 和 RequestorSystemCd 来自不同的文档结构。有没有办法在使用 gradle 导出任务导出时合并结果?

正如 https://github.com/marklogic-community/ml-gradle/wiki/Exporting-data#exporting-data-to-a-file , mlExportToFile grabs all documents returned by a query and writes them to a single file, and you can include an optional header and/or footer. And it's using the Data Movement SDK - http://docs.marklogic.com/guide/java/data-movement 的文档中所述 - 这样做。

根据您的预期,您似乎想要查询其他数据并将其写在文档顶部附近。您需要使用 DMSDK 编写自己的导出代码来执行此操作。就像-将根元素写入文件;查询您列出的 3 个元素并将它们写入文件;将 "body" 标记写入文件;然后使用带有 ExportToWriterListener 的 DMSDK 将查询返回的每个文档写入文件;然后写结束 "body" 和 "results" 标签。