201950 (有效)解析XML數據錯誤:文本內容中發現無效字符

啊,把這麼完美的數字留給了這篇重量級的文章。

陸科說,這是工作的亮點,一定要記錄下來。

是這樣的:
我們一個同事的風險管理平臺,在別人的電腦上能夠正常打開標籤,看到自己的任務列表。
但是到了自己電腦上,打開來就提示:

解析XML數據錯誤:文本內容中發現無效字符。
Line:1
Linepos:117
srcText:
<?xml  version=”1.0” encoding=”GB23212”?> 
<CtaisSession><Service><RtnCode>0</RtnCode><RtnMsg><Code>2000</Code><Message>

點擊 確認

跳出新的警告信息

請求數據時發生錯誤,可能由以下原因引起:      
1.瀏覽器不能連接到後臺服務器(可能是由於長時間未與服務器連接而導致會話失效。);
2.服務器返回的數據格式錯誤。
請稍後重新登錄或與系統管理員聯繫。

點擊確認後,頁面可以正常顯示,但是,任務列表就是爲空。

這就奇怪了。問題雖小,但是同事就沒法正常工作了。

首先,可以確定,在別的電腦上能夠正常打開
說明不是應用自己的問題,在於客戶端的具體配置。

換了360瀏覽器,火狐瀏覽器(此前用的IE瀏覽器)
都報了同樣的錯誤。
說明,不是個別瀏覽器設置的問題,是系統問題。

根據錯誤提示,貌似是字符集的問題
可是,別的應用,能夠正常顯示中文,而且即便我在環境變量里加NLS_LANG,如果XML中不調用的話,加了也是白搭。
其實,我看這個表象,倒像是 數據庫只加載了表頭,沒能把表裏的內容加載出來。但是,到底是什麼原因呢?不得而知。

百般無奈,仔細研究IE的加載項:
在 IE-工具-管理加載項,看到了一個插件的名字有 XML 字樣!
XML DOM Document!

驚喜萬分!
試着禁用了這個插件(加載項),再點擊進去,不報錯了!
開心極了!
說明找到問題的根源了!
但是,任務列表 還是沒能加載出來。
再仔細看這個插件,發現它是 C:\Windows\System32\msxml3.dll。
哦,說明是這個動態鏈接庫不是非常正確唄。
於是,跑到別的電腦上,仔細比對了以下,發現別的電腦上的msxml*.dll比這臺電腦的dll 大幾K。
難道真的是這臺電腦上的xml的動態鏈接庫不夠新?
試着把別的電腦上的msxml*.dll 拷貝至該電腦。
再去打開這個應用,發現一切正常了~

後續:
記得先保存自己本機的dll
不允許覆蓋的dll,那就不要強制覆蓋,因爲那可能是系統最核心的東西了。
還有,插件剛纔禁用過,記得起用。

花絮:
這次解決能夠順利解決這個問題,得益於自己的沉着冷靜。
沒因爲出現了問題焦躁不安。
仔細研究插件,然後發現插件的位置,然後去比較動態鏈接庫大小,進行動態鏈接庫的更新。
這些,每一步,都緊密相關,也都非常重要。缺了任何一環,都不能順利解決問題。

TIPS:

仔細觀察,冷靜分析,尋找關聯。
不到萬不得已不要重裝系統。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章