在 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中仍然解析不了,所以最好的辦法是過濾掉。