在 CDATA 節中找到無效的 XML 字符 (Unicode: 0x1f)

在 CDATA 節中找到無效的 XML 字符 (Unicode: 0x1f)

 

解析XML文件時,會碰到程序發生以下一些異常信息: 

在 CDATA 節中找到無效的 XML 字符 (Unicode: 0x1f)。

或者:

An invalid XML character (Unicode: 0x1f) was found in the CDATA section.

 

這些錯誤的發生是由於一些不可見的特殊字符的存在,而這些字符對於XML文件來說又是非法的,所以XML解析器在解析時會發生異常,官方定義了XML的無效字符分爲三段: 

0x00 - 0x08

0x0b - 0x0c

0x0e - 0x1f

 

解決方法是:在解析之前先把字符串中的這些非法字符過濾掉即可, 不會影響原來文本的內容。

即:string.replaceAll("[\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f]", "") ;

 

另外:這些字符即使放在CDATA中仍然解析不了,所以最好的辦法是過濾掉。

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