XML处理注意事项
一、在XML文件中,如果内容包含一些特殊字符会导致XML文件无法解释。
1、可以对特殊字符直接进行转义
字符 | 转义后 | 编码 |
& | & | & |
' | ' | ' |
" | " | " |
> | > | > |
< | < | < |
2、将内容放至CDATA中
CDATA 以"<![CDATA[" 标记开始,以"]]>"标记结束
以上两种方法可以解决大部分问题,但是XML文档中,一些特殊ASCII字符,显示会有问题,如音乐符号,即使包含在< ! [CDATA[ ] ]中也不行
二、我们在解析XML文件时,会碰到程序发生以下一些异常信息:
引用
org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x{2}) was found in the value of attribute "{1}" and element is "1f".
引用
An invalid XML character (Unicode: 0x1d) was found in the CDATA section.
这些错误的发生是由于一些不可见的特殊字符的存在,而这些字符对于XMl文件来说又是非法的,所以XML解析器在解析时会发生异常,官方定义了XML的无效字符分为三段:
· 0x00 - 0x08
· 0x0b - 0x0c
· 0x0e - 0x1f
解决方法是:在解析之前先把字符串中的这些非法字符过滤掉:
Java代码
1 String xml=xml.replaceAll("[\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f]", "");