2017-01-05 29 views
0

我一直在阅读Wouter van Vugt的“Open XML。标记解释”。 章节“Wordprocessing ML”包含了通过创建几个xml部分文件来手动创建简单docx文件的简单演练,并将其压缩并重命名为* .docx。
我已经严格按照说明操作,但当我尝试使用Open XML SDK生产力工具打开最终* .zip文件时,出现错误:“无法打开文件:指定的文件类型不受支持”。
我试图用MS Word创建一个docx文件,将其重命名为* .zip并用生产力工具打开它。有效。在这个文件中有更多的部分在手动创建,但描述性部分实际上是相同的。 我在做什么错?
P.S .:是的,我知道OOXML应该是通过一些与.NET兼容的代码创建的,而不是手动创建XML内容。但我试图理解它的结构,但我不明白。无法打开手动创建的OpenXML docx文件

创建的文件的内容:

[内容类型]的.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

假设文件结构就像fol降脂:

_rels 
    .rels 
[Content_Types].xml 
Document.xml 

那么它可能只是一个缺少 '+' 在最后 '的ContentType' 的末端之内[CONTENT_TYPES] .XML:

<Override PartName="/Document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml" /> 

(使用'主+ XML '而不是'mainxml')。

相关问题