2

我想将 MS Office word/excel 文档加载到 Marklogic 中,并希望使用 xquery 查询它们,就像使用 xml 文档一样。但是,当我将 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 格式。

请给我适当的指导。

4

3 回答 3

6

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

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

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

于 2012-05-31T15:16:46.283 回答
3

它们是二进制的,所以它们应该作为二进制插入。但是您希望它们被转换。MarkLogic 可以自动为您做到这一点。为此,请执行以下操作:

  • 打开管理界面
  • 转到相应的数据库
  • 打开内容处理页面
  • 打开安装选项卡,将“启用转换”切换为“真”,然后点击安装
  • 检查域的范围以确保您在该范围内插入,例如在以范围 uri 开头的数据库 uri 处插入文档。(这很可能意味着您需要向 xdmp:document-load 添加一个以 / 开头的 uri 选项)
  • 检查管道以查看正在自动转换的内容类型以及格式(最常见的是 xhtml 或 docbook)
  • 重新运行 xdmp:document-load

内容处理框架将创建包含转换结果的附加文件。这通常由带有文本的 xhtml、单独的图像文件(如果有)、带有布局属性的 css 等组成。

这确实需要带有转换选项的许可证。

于 2012-05-31T13:53:59.607 回答
0

OOXML

.doc并且.xls是 XQuery 处理器无法直接处理的二进制文件。

像您提到的那样使用OOXML 。将文件另存为压缩的 XML 文件.docx.xlsx在 zip 文件夹中包含更多资源,如图像)。也许Marklogic zip 模块可以帮助您提取文件。

使用 MS Office 2003

这也可以使用安装了文件格式兼容包的 MS Office 2003 来完成。很抱歉,我无法帮助您进行批量转换,但肯定有一些方法可以使用 VBA 来做到这一点 - 如果需要,请提出另一个问题。

于 2012-05-31T13:48:13.837 回答