您的位置:首页 > 其它

XML解析出现An invalid XML character (Unicode: 0x**) was found in the comment.

2017-07-17 00:57 615 查看
在生产环境上,第三方通讯传输内容有XML不允许的特殊字符,我暂且叫它乱码。

这些乱码导致XML解析报错An invalid XML character (Unicode: 0x**) was found in the comment. 或者其他相同的意思。

解决办法有2个:

1是叫第三方通讯传输内容控制乱码,比如0x1c等等

2是自己在解析xml之前,对内容进行乱码过滤

第2个办法,在网上搜到一个解决方案,我觉得有效,但还没有尝试,毕竟要先尝试第1种情况,与第三方叙述问题。

[java] view
plain copy

这些错误的发生是由于一些不可见的特殊字符的存在,而这些字符对于XMl文件来说又是非法的,所以XML解析器在解析时会发生异常,官方定义了XML的无效字符分为三段:   

0x00 - 0x08  

0x0b - 0x0c  

0x0e - 0x1f  

解决方法是:在解析之前先把字符串中的这些非法字符过滤掉:

[java] view
plain copy

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

办法2转载:http://sjsky.iteye.com/blog/1055063

顺便还搜到一些W3C的测试报告文档,没看懂。转载下应该有点用
http://dev.w3.org/XInclude-Test-Suite/xml-test-suite/xerces-val-report.html

http://dev.w3.org/XInclude-Test-Suite/xml-test-suite/xerces-val-report.html

http://www.w3.org/XML/Test/xmlconf-20080827.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐