“无法打开file.docx,因为内容存在问题。”位置部分:/word/document.xml

时间:2012-09-25 22:59:00

标签: xml ms-word drawing corruption word-2010

一些用户一直在非常重复地面对文档损坏问题。

我们有一个使用Webdav在服务器上存储Word文档的应用程序。在服务器上访问和编辑这些文档的用户可能在办公室2007和办公室2010上。大多数文档是共享的,可以由office 2007和Office 2010用户进行编辑。

用户数正在遇到文档损坏问题,并出现以下错误。 ==> “文件xxx无法打开,因为”内容存在问题“ 细节: 没有更详细的信息。位置部分:/word/document.xml行:1列0

格式化此文档的document.xml文件后,我发现错误指向line => < wp:docPr id =“1026”/>

有问题的XML节点位于下面提供的XML节点中。所有损坏的文档都具有相同的行为。它们都指向相同的XML标记。如果我拿出完整的节点,文档就可以正常打开。

 <w:drawing>
          <wp:inline distT="0" distB="0" distL="0" distR="0">
            <wp:extent cx="4572638" cy="3429479" />
            <wp:effectExtent l="0" t="0" r="0" b="0" />
            <wp:docPr id="1026" />
            <wp:cNvGraphicFramePr>
              <a:graphicFrameLocks xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" noChangeAspect="1" />
            </wp:cNvGraphicFramePr>
            <a:graphic xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
              <a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture">
                <pic:pic xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture">
                  <pic:nvPicPr>
                    <pic:cNvPr id="0" />
                    <pic:cNvPicPr>
                      <a:picLocks noChangeAspect="1" />
                    </pic:cNvPicPr>
                  </pic:nvPicPr>
                  <pic:blipFill>
                    <a:blip r:embed="rId4" />
                    <a:stretch>
                      <a:fillRect />
                    </a:stretch>
                  </pic:blipFill>
                  <pic:spPr>
                    <a:xfrm>
                      <a:off x="0" y="0" />
                      <a:ext cx="4572638" cy="3429479" />
                    </a:xfrm>
                    <a:prstGeom prst="rect">
                      <a:avLst />
                    </a:prstGeom>
                  </pic:spPr>
                </pic:pic>
              </a:graphicData>
            </a:graphic>
          </wp:inline>
        </w:drawing>

将文档保存在我的本地计算机上并使用打开和修复选项打开它后,有问题的标记看起来像这样=&gt; &lt; wp:docPr id =“1026”name =“Picture 1026”/&gt;完整的节点如下所示。

 <w:drawing>
          <wp:inline distT="0" distB="0" distL="0" distR="0">
            <wp:extent cx="4572638" cy="3429479"/>
            <wp:effectExtent l="0" t="0" r="0" b="0"/>
            <wp:docPr id="1026" name="Picture 1026"/>
            <wp:cNvGraphicFramePr>
              <a:graphicFrameLocks xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" noChangeAspect="1"/>
            </wp:cNvGraphicFramePr>
            <a:graphic xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
              <a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture">
                <pic:pic xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture">
                  <pic:nvPicPr>
                    <pic:cNvPr id="0" name=""/>
                    <pic:cNvPicPr>
                      <a:picLocks noChangeAspect="1"/>
                    </pic:cNvPicPr>
                  </pic:nvPicPr>
                  <pic:blipFill>
                    <a:blip r:embed="rId8"/>
                    <a:stretch>
                      <a:fillRect/>
                    </a:stretch>
                  </pic:blipFill>
                  <pic:spPr>
                    <a:xfrm>
                      <a:off x="0" y="0"/>
                      <a:ext cx="4572638" cy="3429479"/>
                    </a:xfrm>
                    <a:prstGeom prst="rect">
                      <a:avLst/>
                    </a:prstGeom>
                  </pic:spPr>
                </pic:pic>
              </a:graphicData>
            </a:graphic>
          </wp:inline>
        </w:drawing>

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

简短的回答是“name”是docPr和cNvPr元素的必需属性:

<xsd:complexType name="CT_PictureNonVisual">
  <xsd:sequence>
    <xsd:element name="cNvPr"    type="a:CT_NonVisualDrawingProps"/>
    ...
  </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="CT_Inline">
  <xsd:sequence>
    ...
    <xsd:element name="docPr" type="a:CT_NonVisualDrawingProps"/>
    ...
  </xsd:sequence>
  ...
</xsd:complexType>

<xsd:complexType name="CT_NonVisualDrawingProps">
  ...
  <xsd:attribute name="id"   type="ST_DrawingElementId" use="required"/>
  <xsd:attribute name="name" type="xsd:string"          use="required"/>
  ...
</xsd:complexType>

我不得不猜测在该过程中该属性被取消或删除的位置。但是没有它,document.xml部分不是模式有效的,这将解释所需的修复步骤。