ms-excel 兼容的 csv 文件,代表 MarkLogic 目录中的所有文档

2023-12-26

我怎样才能最好地制作一个MS-Excel兼容的csv代表 MarkLogic 目录中所有文档的文件 使用XCCJava 客户端和Tomcat and Marklogic两者都位于偏远地区。目录中的文档数量约为15000个。


第一部分,获取目录中的所有文档,已经为我们准备好了避免 XDMP-EXPNTREECACHEFULL 并加载文档 https://stackoverflow.com/questions/14679746/avoiding-xdmp-expntreecachefull-and-loading-document

cts:search(
  collection(),
  cts:directory-query('path/to/documents/', 'infinity'))

正如我的回答中所述,如果您需要进一步的限制,您可以cts:and-query that cts:directory-query和其他人cts:query terms.

接下来,您需要将每个 XML 文档转换为 CSV。这相当简单,但您必须知道 XML 的结构或有某种方法来推断它。对于这个例子,我会说我总是有简单的子元素a, b, c, d在某些根元素下。因此,查询需要为这些元素生成 CSV 标头,后跟 CSV 行。

我们可能还想从调用者处提交目录 URI。如果您使用 REST 这将使用xdmp:get-request-field但对于 XCC 来说它是一个外部值。

declare variable $DIRECTORY-URI as xs:string external ;

declare function local:csv($root as element()) as xs:string
{
  string-join(($root/a, $root/b, $root/c, $root/d), ',')
};

'A,B,C,D',
cts:search(
  collection(),
  cts:directory-query($DIRECTORY-URI, 'infinity'))/local:csv(*)

再次,制作local:csv为您的应用程序工作需要一些 XML 知识或某种推断其结构的方法。您可能还需要将一些值放在双引号中。但这种基本结构是解决该问题的最有效方法之一。我避免使用任何 XQuery FLWOR 表达式,以便结果可以流式传输。

另一种方法是使用范围索引和http://docs.marklogic.com/cts:值元组 http://docs.marklogic.com/cts:value-tuples with a cts:query限制结果,然后将 JSON 转换为 CSV。这会更加有效,因为不会获取任何片段。但这不适用于某些 XML 结构,并且您可能无法为每个 CSV 字段创建范围索引。

declare variable $DIRECTORY-URI as xs:string external ;

declare function local:csv($ja as json:array) as xs:string
{
  string-join(json:array-values($ja), ',')
};

'A,B,C,D',
local:csv(
  cts:value-tuples(
    (cts:element-reference(xs:QName('a')),
     cts:element-reference(xs:QName('b')),
     cts:element-reference(xs:QName('c')),
     cts:element-reference(xs:QName('d'))),
    (),
    cts:directory-query($DIRECTORY-URI, 'infinity')))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ms-excel 兼容的 csv 文件,代表 MarkLogic 目录中的所有文档 的相关文章

  • 在Windows中转义curl命令

    我正在尝试运行curl我可以从 Windows 的命令行中执行命令 但我怎么也想不出如何逃脱它 我正在执行这个 C WINDOWS system32 gt curl anyauth user user password X POST d r
  • 避免 XDMP-EXPNTREECACHEFULL 并加载文档

    我正在使用 marklogic 4 并且有大约 15000 个文档 每个文档大约 10 KB 我想将整个内容作为文档加载 并将所有文档转换为单个 csv 文件并输出到 HTTP 输出流以供下载 当我以这种方式加载文档时 let uri ct
  • MarkLogic 连接查询

    您好 我是 marklogic 和 Xquery 世界的新手 我无法想到在 Marklogic Xquery 中编写以下逻辑的起点 如果有人能给我想法 样本 我将不胜感激 以便我可以实现以下目标 我想根据 B XML 中的单词查找来查询 A
  • MarkLogic 8 - 将大型结果集流式传输到文件 - JavaScript - Node.js 客户端 API

    假设我有一个查询将返回一个非常大的响应 可能有数千条记录 也可能有千兆字节的数据 通常在用户界面中 我们只显示该数据的单个页面 现在我需要一个选项来获取整个结果集并将其流式传输到文件中 然后用户可以在闲暇时去下载这个 那么 如何使用查询生成
  • Marklogic (Nodejs API) - 搜索与对象数组属性中的 2 个(或更多)条件匹配的文档

    我的文档存储在 marklogic 中的 JSON 中 如下所示 我删除了我的案例中无用的属性 documentId languages locale en UK content translated true locale de DE c
  • 如何高效替换XML的多个节点?

    我试图一次性替换单个文档的大约 500 个节点 并且我的数据库中有 5000 多个文档 我正在使用的代码与我之前问过的这个问题相关 Link https stackoverflow com questions 51998598 how to
  • ms-excel 兼容的 csv 文件,代表 MarkLogic 目录中的所有文档

    我怎样才能最好地制作一个MS Excel兼容的csv代表 MarkLogic 目录中所有文档的文件 使用XCCJava 客户端和Tomcat and Marklogic两者都位于偏远地区 目录中的文档数量约为15000个 第一部分 获取目录
  • 基于同一元素多个属性值的Marklogic查询

    我有以下 xml 样本1 xml
  • MarkLogic XML 到 JSON 的转换

    我正在尝试将此 XML 文件转换为 JSON 但无法取得任何成功 我的 XML 中有两个子元素 但它只返回最后一个 如何获取 JSON 格式的两条记录 XML
  • 如何在 Ubuntu 14.04 上安装 MarkLogic 8?

    在 Ubuntu 14 04 上安装 MarkLogic 8 的步骤是什么 根据 Alex Bleasdale David Ennis 的说法 下载 CentOS 版本 然后 Ubuntu 和其他基于 Debian 的发行版使用 DEB 软
  • Marklogic:导入 csv 时在文档上创建多个 XML 文件。如何获取根文档 URI 路径?

    我是 Marklogic 的新手 我尝试将 100k 记录的 CSV 文件导入到 Marklogic 导入后 我发现它默认导入到文档数据库 另外 我发现对于每条记录 我都会看到数据库中生成的 XML 文件 其中增量编号附加到我在导入时提到的
  • 来自 JSON 字符串数组的 MarkLogic TDE Xpath 值

    我想构建一个 tde 其中包含一行 其中包含 id 和原始文档中数组的每个值 我为每个元素获取一行 但值为空并被忽略 似乎如果上下文设置为不是数组的任何内容 uri 可以工作 但当上下文是数组时则不会 除了简单的示例之外 我正在努力寻找 M
  • MarkLogic - 带有 REST API 的 CORS

    我有一个基于 MarkLogic 的 Web 应用程序 它从两个源提取数据 一个文档存储和一个三重存储 两者都托管在我的 MarkLogic 服务器上 该应用程序使用 MarkLogic 的内置 REST API 来访问这些数据存储 文档存
  • Marklogic 中的 JavaScript 多语句事务

    我想在 marklogic 中的服务器端 JavaScript 中编写多语句事务 我想要实现的是 执行更新事务 然后编写查询语句来查询更新的文档并确认更新在事务中可见 最后进行回滚 通过进行回滚 我想确认事务内进行的更新在事务外不可见 而在
  • 在 MarkLogic 中处理禁运内容场景

    我有一个 MarkLogic 7 数据库 其中插入了多个文档 每个文档都有自己的created on and released on 举例来说 如果将文档插入到数据库中1400小时及其released on值为1700小时然后我需要将此文档
  • 如何在Marklogic中使用Group By?

    我想在 xquery 中使用 Group By 有人可以告诉我如何在 Marklogic 中使用 Group By 吗 或者 您可以使用调用 XSLTxdmp xslt invoke or xdmp xslt eval MarkLogic
  • 尝试运行 XQuery 脚本以单点登录 MarkLogic 时出错

    我正在研究使用 xquery 重写器脚本来自动登录单点登录解决方案 我从端口 8001 的管理应用程序服务器开始 在应用程序服务器配置中 我有 设置身份验证 application level 设置 url 重写器 rewriter xqy
  • 如何获取Marklogic数据库中的文档总数?

    我在 Marklogic 数据库中有大约 20 个 lacs 文档 我想要我的搜索应用程序中的文档总数进行分页 为了获得我正在使用的总数 xdmp estimate cts search doc query 其中 query 是各种查询的组
  • 有没有查看/编辑/删除Marklogic文档的工具

    有没有什么工具可以view edit deleteMarklogic 的文档 比如 Mongo Management Studio for MongoDb MarkLogic 内置了对 WebDav 的支持 您可以在管理控制台中创建 Web
  • 使用 cts:query 检查属性是否缺失

    我有一个 XML 片段 我希望根据 id 属性的存在进行不同的查询

随机推荐