做网站都是需要什么,上海市网,垂直外贸网站,无极电影网免费完整播放电视剧最近在做简单的解析XML的工作#xff0c;我使用的是DOM4J来解析#xff0c;可以说很方便了#xff0c;在加上使用XPATH来具体确定XML中特定元素下的位置#xff0c;更加便捷了 可是在使用XML解析是却遇到了这样的问题#xff1a; org.xml.sax.SAXParseException: An inval… 最近在做简单的解析XML的工作我使用的是DOM4J来解析可以说很方便了在加上使用XPATH来具体确定XML中特定元素下的位置更加便捷了 可是在使用XML解析是却遇到了这样的问题 org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x10) was found in the CDATA section. 解析XML文件时出现非法字符 (Unicode: 0x10) 的Exception即使该字符位于CDATA段内 查阅资料得知这个问题可以概括为An invalid XML character (Unicode: 0x**) was found in the comment. 问题所在是因为文件中有XML不允许的特殊字符我觉得这也是我们俗称的乱码W3C标准中有规定有一些字符不能出现在XML文件中 这些错误的发生是由于一些不可见的特殊字符的存在而这些字符对于XMl文件来说又是非法的所以XML解析器在解析时会发生异常官方定义了XML的无效字符分为三段
0x00 - 0x08
0x0b - 0x0c
0x0e - 0x1f 最后这个问题的解决方法是 1 对有可能出问题的XML文件进行字符过滤后再进行解析。
2 public static String XMLChars(String s) {
3 if (s null || .equals(s)) {
4 return s;
5 }
6 return s.replaceAll([\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f], );
7 } 这样这个问题就解决了 转载于:https://www.cnblogs.com/yang-yang-yang/p/8646002.html