xml - 如何在Marklogic Server中加载和查询word/excel文档?

标签 xml xquery marklogic

我想将 MS Office word/excel 文档加载到 Marklogic 中,并想像处理 xml 文档一样使用 xquery 查询它们。但是,当我将 doc 文件加载到 Marklogic 中时,它会将它们加载为二进制格式,并在使用查询控制台查看时显示垃圾字符。我尝试使用以下命令加载:-

xdmp:document-load("E:\doc\sample.doc", 
    <options xmlns="xdmp:document-load"
             xmlns:http="xdmp:http">
      <format>xml</format>
    </options>)

但它显示一个错误,指出文档不是 UTF 8 编码的。我想知道是否可以将 doc 和 xls 文件按原样加载到 Marklogic 中,或者在加载它们之前必须将它们转换为 xml 或 UTF 8 编码格式。如果是,那么转换它们的过程是什么。如果不是,那么我们如何使用 xquery 查询它们。我还想知道转换过程是否需要安装 MS Office 2007/2010,因为 Office 2007 和 2010 都支持 OOXML 格式。

请给我适当的指导。

最佳答案

如果您处理的是 2007/2010 之前格式的 Office 文档,Grtjn 的回复是正确的。对于 2007/2010 文档,在 CPF 中启用“Office OpenXML ExtractOffice OpenXML Extract”管道并重新加载文档。此管道不需要额外的转换选项。它将按原样加载源 XML。

Office 2007/2010 文档只是包含相互关联的 XML 部分的 .zip 文件。此管道将解压缩任何 .docx、.xlsx、.pptx 文档,并将其组成部分保存在以源文档命名的目录中。该目录将保存为源文档的同级文档,并将链接到源文档,例如,如果删除源 .docx,包含提取部分的目录也将被删除。

确保数据库的自动目录创 build 置为 true。 (这是 MarkLogic 5.0 和之前版本的默认设置)。

关于xml - 如何在Marklogic Server中加载和查询word/excel文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10834616/

相关文章:

python - 解析多个 XML 虽然不是所有文件都具有 python 的元素

angularjs - 如何从 AngularJS 使用 MarkLogic REST API

xml - 将相邻注释转换为xs :annotations in XSDs

java - Android 动态壁纸 - 动态壁纸中 XML 的层和基础知识

xquery - 在 XQuery 中为循环构建字典并计算相似节点的出现次数

sql-server - 使用 XQuery 仅查找并替换 xml 值的一部分?

database - 如何完全删除 MarkLogic 数据库及其服务器和林?

java - MarkLogic-Java 搜索查询示例 'not' 运算符

xml - 传递给 QWeb 子模板的变量的范围是什么?

xpath - MarkLogic - 在不使用 Xpath 的情况下获得不同的结果集