1. 程式人生 > >在 CDATA 節中找到無效的 XML 字元 (Unicode: 0x1f)

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