为什么在word 2013文档中替换自定义xml部分中的xml节点的值会使其损坏?

时间:2014-12-15 10:42:26

标签: vsto openxml office-2013 word-automation

我创建了一个Word 2013文档并执行了以下操作:

  1. 在设计时为其添加了纯文本内容控件。
  2. 在设计时添加了自定义Xml零件。
  3. 从Custom Xml Part的一个节点到纯文本内容控件的映射。
  4. 节点的值出现在内容控件中。
  5. 我保存并关闭了文件。
  6. 将其重命名为.zip并将其解压缩到一个文件夹中。
  7. 编辑了customXml / item1.xml文件夹中的文件,这是我自定义的xml部分,并将节点的值从<Name>John</Name>更改为<Name>Harry</Name>
  8. 将其归档为zip文件,并将其重命名为.docx。
  9. 当我打开文档时,它已损坏,Microsoft Word说: -
  10. We're sorry. We can't open XYZ.docx because we found a problem with the contents. Microsoft Office cannot open this file because some parts are missing or invalid.

2 个答案:

答案 0 :(得分:0)

原因 - 您无法像在步骤8中那样解压缩并重新压缩.docx文件

指南 - 试试这个。创建一个虚拟的.docx文件格式单词。解压缩并重新压缩并尝试打开文件。您将得到相同的错误,您将无法按预期使用它。

解决方案 - 如果要编辑.docx文件,请使用Open XML SDK并执行此操作。这是指向好导游的链接 - http://msdn.microsoft.com/EN-US/library/office/cc850833(v=office.15).aspx。此外,Open XML生产力工具也会派上用场 - http://dotnet.dzone.com/articles/using-openxml-sdk-productivity

答案 1 :(得分:0)

I was zipping and unzipping incorrectly. We don't need any Open XML SDK.

我在做的是:右键点击XYZ.docx.zip并选择Extract to XYZ.docx。当它被解压缩到文件夹XYZ.docx中时,我编辑了里面的内容,然后将整个文件夹压缩到XYZ.docx,这是错误的。

当我进入文件夹并仅将内容压缩到XYZ.docx.zip时,它就开始工作了。