XML解析文件出錯解決方法


     在解析xml時,經常因為文件中含特殊字符而解析失敗。原因有兩個:一是內容中含有XML預定義好的實體,二是內容中含有低位非打印字符。

     1.內容中含有xml預定好的實體,如“<”和“&”,對xml來說是禁止使用的,針對這種字符,解決方式是使用CDATA部件以"<![CDATA[" 標記開始,以"]]>"標記結束,是CDATA內部內容被解析器忽略。具體說明參考《XML CDATA是什么?》。

     2.內容中含有低位非打印字符,解析時會報錯:""(十六進制值 0x1D)是無效的字符.加載或保存XML時引發的異常.System.ArgumentException: “”(十六進制值 0x1D)是無效的字符

     出錯的原因是內容中含有低位非打印字符,處理方法是對其進行過濾,過濾方法為:

     return System.Text.RegularExpressions.Regex.Replace(str,@"[\x00-\x08]|[\x0B-\x0C]|[\x0E-\x1F]";

     具體說明參考《XML文件出錯解決方法!(轉)》。

     以上兩種情況,第一種較為普遍,第二種遇到情況比較少,在面對一些用戶輸入數據時生成xml,可以對xml結點內容執行上述過濾,以保證xml文件使用者可以正確解析xml文檔。

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM