0.要解决的问题:写了好多天的论文,今天编辑了一大堆图片和公式,想着备份一下,于是关闭文档再重新打开的时候,发现打不开了!!!显示详细错误是“前缀已声明”,我当时就崩溃了啊
于是开始求问度娘,发现也有人出现过类似的情况,比如下面的文章,不少人都解决了,我试了还是不行。
/aaronfo/article/details/51152733
1.主要的思路就是将.docx文档修改为.rar/.zip后缀的文件压缩包,然后将其解压,修改word文件夹下的document.xml文件,再将压缩包中的document.xml文件替换为修改过的文件。上述连接介绍的用“firstobjectXML编辑器”分析document.xml文档的方式在处理缺少标记、标记不匹配等情况时可能适用,但是我在分析文档时,并没有报错,面对全是看不懂的代码,简直要哭了。
2.于是继续度娘,无果。无奈之下,想到了microsoft community,我想是微软自己的东西,总该有解决办法吧。结果还真找到一篇英文的:
/en-us/msoffice/forum/msoffice_word-mso_other/cant-open-word-file-due-to-undeclared-prefix/a7c3b29a-da52-4d3e-bc4f-ca7e1e0771f4
虽然这篇的问题是“声明未前缀”,但和我的问题很接近了,于是仔细研究了一番,得到了我的解决方法。
3.
1)首先,将docx文档后缀改为.rar/.zip,解压缩,找到word文件夹下的document.xml文档,用notepad++打开,没装的可以先度娘装一下这个代码编辑器软件。
2)打开XML validator,其实就是代码验证器,打开网址:/xml/xml_validator.asp,或者/,后者没有亲测。找到“Syntax Check Your XML” input window输入窗口
3)在notepad++里全选(ctrl+a)复制(ctrl+c)document.xml文档中的所有内容,再去2)中,粘贴替换掉原输入窗口中的内容,然后点击 validate,稍等片刻就会出现分析结果。以下是我的分析结果:
注意:因为xml代码可能很大,所有窗口可能会卡死,耐心等待就好,下同。
4)定位到错误以后,就可以去解决了。我的错误是:在470行处,“xmlns:cx”重复定义。于是返回到刚才的notepad++中,ctrl+F查找“xmlns:cx”,发现相同的标签前缀定义了三遍,至于为什么会出现这种问题我就不清楚了。所以讲重复定义的部分删掉。(这一步如果在notepad++中不好操作,可以将代码复制到word文档中查找错误)
5)修改好后保存该xml文档,找到1)中的压缩包,点进压缩包里找到word文件夹下的document.xml,右键删除文件,删掉之后,再右键添加文件到压缩包,将修改过的document.xml压缩文件添加进来。最后再将.rar/.zip后缀改回.docx后缀,打开文件,继续报错,显示的是“文件已损坏”,点确定,然后word会问你是否要恢复文档,点击恢复就可以了。
完。希望对以后出现类似情况的童鞋有帮助。