问题:有时辛辛苦苦用wps或office编写的docx文档,关闭后再重新打开的时候,发现打不开了!!!显示详细错误是“前缀已声明”,这时是很容易崩溃的。
有时试了各种方法都解决不了,或许这种解决方法可以帮助你。docx文件本身是一种压缩格式,解压后是xml文件类型,可以根据修改xml来帮助解决。
1.主要的思路就是将.docx文档修改为.rar/.zip后缀的文件压缩包,然后将其解压,修改word文件夹下的document.xml文件,再将压缩包中的document.xml文件替换为修改过的文件。可以用“firstobjectXML编辑器”分析document.xml文档的方式在处理缺少标记、标记不匹配等情况,分析文档,看有没有报错。
2.如果还不能解决,可以试下下面的方法。
1)首先,将docx文档后缀改为.rar/.zip,解压缩,找到word文件夹下的document.xml文档,用notepad 打开,没装的可以先度娘装一下这个代码编辑器软件。
2)打开XML validator,其实就是代码验证器,打开网址:
www.w3schools.com/xml/xml_validator.asp,或者xmlvalidation.com,后者没有亲测。找到“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会问你是否要恢复文档,点击恢复就可以了。
如果上面方法都不能解决,可以直接把xml里面的文字直接拷贝出来重写,尽最大可能挽回数据。