問題:有時辛辛苦苦用wps或office編寫的docx文檔,關(guān)閉后再重新打開的時候,發(fā)現(xiàn)打不開了!??!顯示詳細(xì)錯誤是“前綴已聲明”,這時是很容易崩潰的。

有時試了各種方法都解決不了,或許這種解決方法可以幫助你。docx文件本身是一種壓縮格式,解壓后是xml文件類型,可以根據(jù)修改xml來幫助解決。
1.主要的思路就是將.docx文檔修改為.rar/.zip后綴的文件壓縮包,然后將其解壓,修改word文件夾下的document.xml文件,再將壓縮包中的document.xml文件替換為修改過的文件??梢杂谩癴irstobjectXML編輯器”分析document.xml文檔的方式在處理缺少標(biāo)記、標(biāo)記不匹配等情況,分析文檔,看有沒有報錯。
2.如果還不能解決,可以試下下面的方法。
1)首先,將docx文檔后綴改為.rar/.zip,解壓縮,找到word文件夾下的document.xml文檔,用notepad++打開,沒裝的可以先度娘裝一下這個代碼編輯器軟件。
2)打開XML validator,其實就是代碼驗證器,打開網(wǎng)址:www.w3schools.com/xml/xml_validator.asp,或者xmlvalidation.com,后者沒有親測。找到“Syntax Check Your XML” input window輸入窗口
3)在notepad++里全選(ctrl+a)復(fù)制(ctrl+c)document.xml文檔中的所有內(nèi)容,再去2)中,粘貼替換掉原輸入窗口中的內(nèi)容,然后點擊 validate,稍等片刻就會出現(xiàn)分析結(jié)果。比如下面

注意:因為xml代碼可能很大,所有窗口可能會卡死,耐心等待就好,下同。
4)定位到錯誤以后,就可以去解決了。我的錯誤是:在470行處,“xmlns:cx”重復(fù)定義。于是返回到剛才的notepad++中,ctrl+F查找“xmlns:cx”,發(fā)現(xiàn)相同的標(biāo)簽前綴定義了三遍,至于為什么會出現(xiàn)這種問題我就不清楚了。所以講重復(fù)定義的部分刪掉。(這一步如果在notepad++中不好操作,可以將代碼復(fù)制到word文檔中查找錯誤)
5)修改好后保存該xml文檔,找到1)中的壓縮包,點進(jìn)壓縮包里找到word文件夾下的document.xml,右鍵刪除文件,刪掉之后,再右鍵添加文件到壓縮包,將修改過的document.xml壓縮文件添加進(jìn)來。最后再將.rar/.zip后綴改回.docx后綴,打開文件,繼續(xù)報錯,顯示的是“文件已損壞”,點確定,然后word會問你是否要恢復(fù)文檔,點擊恢復(fù)就可以了。
如果上面方法都不能解決,可以直接把xml里面的文字直接拷貝出來重寫,盡最大可能挽回數(shù)據(jù)。