我一直在阅读Wouter van Vugt撰写的“Open XML。标记解释”。
“Wordprocessing ML”一章包含相当简单的手动创建简单docx文件的演练,方法是创建几个xml零件文件,将其压缩并重命名为* .docx。
我已经准确地遵循了说明,但是当我尝试使用Open XML SDK Productivity Tool打开final * .zip文件时,我遇到了一个错误:“无法打开文件:不支持指定的文件类型”。
我尝试使用MS Word创建一个docx文件,将其重命名为* .zip并使用Productivity Tool打开它。有效。此文件中有更多部件,然后手动创建,但描述部分几乎相同。
我做错了什么?
P.S。:是的,我知道OOXML应该通过一些与.NET兼容的代码创建,而不是通过手动创建XML内容。但是我试图理解它的结构,我不明白它。
创建文件的内容:
[内容类型]的.xml:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml" />
<Default Extension="xml" ContentType="application/xml" />
<Override PartName="/Document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.mainxml" />
</Types>
document.xml中:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:body>
<w:p>
<w:r>
<w:t>Hello World!</w:t>
</w:r>
</w:p>
</w:body>
</w:document>
的.rels:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="Document.xml" />
</Relationships>
答案 0 :(得分:0)
假设文件结构如下:
_rels
.rels
[Content_Types].xml
Document.xml
然后它可能只是一个缺失的&#39; +&#39;在最后一个&#39; ContentType&#39;在[Content_Types] .xml:
中<Override PartName="/Document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml" />
(使用&#39; main + xml &#39;而不是&#39; mainxml &#39;)。