繁体   English   中英

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

[英]How to load & query word/excel documents in Marklogic Server?

我想将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格式。

请给我适当的指导。

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

Office 2007/2010 docs只是包含相互关联的XML部分的.zip文件。 此管道将解压缩任何.docx,.xlsx,.pptx文档,并将其组件部分保存在源文档之后命名的目录中。 该目录将保存为源文档的兄弟,并将链接到源,因此,如果删除源.docx,则还将删除包含提取的部分的目录。

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

它们是二进制的,因此它们应该作为二进制插入。 但是你希望它们被转换。 MarkLogic可以自动为您完成。 为此,请执行以下操作:

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

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

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

HTH!

OOXML

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

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

使用MS Office 2003

这也可以使用安装了文件格式兼容包的 MS Office 2003来完成。 对不起,我无法帮助您进行批量转换,但确定有一些方法可以使用VBA执行此操作 - 如果需要,可以提出另一个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM