Java解析xml文件遇到特殊符号异常的情况(处理方案)

网友投稿 292 2023-01-15

Java解析xml文件遇到特殊符号异常的情况(处理方案)

在一次java解析xml文件的开发过程中,使用SAX解析时,出现了这样一个异常信息:

Error on line 60 of document : 对实体 "xxx" 的引用必须以 ';' 分隔符结尾;

我打开xml文件后,发现该“xxx"符号之前跟着一个”&“符号,后来了解到,这类符号在xml里属于一种特殊符号,而特殊符号若没用转义符表示,直接用到xml文件里,就会在使用SAX等方式做解析时出现奇怪的异常。

其实,这都是因为这些特殊字符造成的。

XML当中特殊符号包括< > & ' "等,它们是不允许作为xml文件的PCDATA,若想使用话,需用转义符代替:

<    <

> &nhttp://bsp;  >

&   &

"  "

'  '

那么,若要正常读取xml文件数据,应该如何使用转义符替换呢?

刚开始是想百度一番如何解决,却发现好多帖子都是好几年前的,且都没有写清楚怎么个解决方法,大多都是提到是特殊符号引起的解析异常,但怎么过滤掉,显得含糊其辞,因此,只能自己胡乱捣鼓一番,捣鼓出一个比较合适的将特殊字符过滤的方案。

实现思路其实很简单,我们可以在读取xml文件使用SAX解析前,先把xml文件通过Reader读取,然后按行读取出来拼接成一个String字符串,再使用字符串的替换方法replaceAll()将特殊符号进行替换,替换后,就可以将字符串形式的xml直接转成Document对象做xml解析了:

String xmlStr=s.replaceAll("&","&");

转换方法代码如下:

StringBuffer buffer = new StringBuffer();

BufferedReader bf= new BufferedReader(new FileReader("D:\\测试.xml"));

String s = null;

while((s = bf.readLine())!=null){

buffer.append(s.trim());

}

String str = buffer.toString();

//在这一步进行字符替换,替换成合法转义字符

String xml=str.replaceAll("&","&");

//这里就可以将处理过的xml文件进行读取解析了

Document documehttp://nt = DocumentHelper.parseText(xml);

至此,就可以解决Java解析xml文件遇到特殊符号&出现异常的问题了。

以上就是Java解析xml文件遇到特殊符号异常的情况(处理方案)的详细内容,更多关于Java解析xml文件的资料请关注我们其它相关文章!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:天眼查免费api(天眼查免费吗)
下一篇:中通菜鸟物流查询(中通菜鸟快递官网)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~