我想将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和Office 2007都是如此。 2010支持OOXML格式。
请给我适当的指导。
答案 0 :(得分:6)
如果您以2007/2010之前的格式处理Office文档,Grtjn的回复是正确的。对于2007/2010文档,启用&#34; Office OpenXML ExtractOffice OpenXML Extract&#34; CPF中的管道并重新加载文档。此管道不需要额外的转换选项。它将按原样加载源XML。
Office 2007/2010 docs只是包含相互关联的XML部分的.zip文件。此管道将解压缩任何.docx,.xlsx,.pptx文档,并将其组件部分保存在源文档之后命名的目录中。该目录将保存为源文档的兄弟,并将链接到源,因此,如果删除源.docx,则还将删除包含提取的部分的目录。
确保数据库的自动目录创建设置为true。 (这是MarkLogic 5.0及之前版本的默认设置。)
答案 1 :(得分:3)
它们是二进制的,因此它们应该作为二进制插入。但是你希望它们被转换。 MarkLogic可以自动为您完成。为此,请执行以下操作:
内容处理框架将创建包含转换结果的其他文件。这通常包含带文本的xhtml,单独的图像文件(如果有),带有布局属性的css等。
这需要带有转换选项的许可证。
HTH!
答案 2 :(得分:0)
.doc
和.xls
是二进制文件,XQuery处理器无法直接处理。
像你提到的那样使用OOXML。将文件保存为.docx
或.xlsx
,这些文件是压缩的XML文件(在zip文件夹中有一些更多的资源,如图像)。也许Marklogic zip module可以帮助您提取文件。
这也可以使用安装了File Format Compatibility Pack的MS Office 2003来完成。对不起,我无法帮助您进行批量转换,但确定有一些方法可以使用VBA执行此操作 - 如果需要,请提出另一个问题。