最近做一个项目的时候,老是报com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 2 of 2-byte UTF-8 sequence.异常,经过仔细排查发现,是xml解析的时候出现了问题。
情况是这样:A用ansi编码xml文件,xml中不包含<?xml version="1.0" encoding="UTF-8"?>,缺省情况解析也是按照utf-8来解析。然后发送给B,而B在解析xml的时候,如果xml文件中没有中文就没事,但是如果有中文解析就出现这种问题。源代码如下所示:XML中包含了中文字符
SAXBuilder builder=new SAXBuilder();
String attrvalue="";
File xmlfile=new File("susxml/test.xml");
try {
Document doc=builder.build(xmlfile);
Element programme_tag=doc.getRootElement();
List<Element> data=programme_tag.getChildren("DATA");
if(data!=null && data.size()>0){
Element element=data.get(0);
attrvalue=element.getAttributeValue("NAME");
System.out.println(attrvalue);
}
}catch(Exception ex){
ex.printStackTrace();
}
此时抛出这样的异常com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 2 of 2-byte UTF-8 sequence.
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:674)
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:362)
改动代码
SAXBuilder builder=new SAXBuilder();
String attrvalue="";
File xmlfile=new File("susxml/test.xml");
Reader xmlStreamReader=new InputStreamReader(new FileInputStream(xmlfile),"gbk");
try {
Document doc=builder.build(xmlStreamReader);
Element programme_tag=doc.getRootElement();
List<Element> data=programme_tag.getChildren("DATA");
if(data!=null && data.size()>0){
Element element=data.get(0);
attrvalue=element.getAttributeValue("NAME");
System.out.println(attrvalue);
}
}catch(Exception ex){
ex.printStackTrace();
}
正确解析,异常不再出现。
分享到:
相关推荐
基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发...
jdom.jar jstl.jar log4j-1.2.13.jar ojdbc14._jar standard.jar commons-net-1.4.1.jar xml-apis.jar jdbc2_0-stdext.jar
jdom-1.1.zip jdom-1.1.jar jdom.jar jdom库 jdom操作xml
jdom解析xml
jdom解析xml文件小实例jdom解析xml文件小实例jdom解析xml文件小实例
NULL 博文链接:https://xurichusheng.iteye.com/blog/1518547
这是我做的简单的一个在jsp中用jdom解析xml的程序。只是显示,添加等简单的功能,来学习学习jdom解析xml的程序。如果你想学习那这一定是个很好的例子
jdom-1.0.jar,jdom-1.0.jar,jdom-1.0.jar,jdom-1.0.jar,jdom-1.0.jar
一个关于用jdom解析xml,遍历xml,建立xml的简单例子.
jdom解析xml文件的源代码、jar包以及示例xml文件
jfreechart-1[1].0.9.jar jcommon-1[1].0.12.jar包
jdom解析XML(修改为比较通用的方法) jdom解析XML(修改为比较通用的方法) jdom解析XML(修改为比较通用的方法)
赠送jar包:jdom2-2.0.6.jar; 赠送原API文档:jdom2-2.0.6-javadoc.jar; 赠送源代码:jdom2-2.0.6-sources.jar; 赠送Maven依赖信息文件:jdom2-2.0.6.pom; 包含翻译后的API文档:jdom2-2.0.6-javadoc-API文档-...
JDOM解析XML.rar JDOM解析XML.rar JDOM解析XML.rar
jdom-1.0 jdom jdom-1.0,jdom解析xml
利用JDOM解析xml文件,并根据xml中为类名,生成相应的对象。
maven-model-jdom-support-3.0.x-1.1.jar
jdom解析XML文件and把字符串解析成XML.txt jdom解析XML文件and把字符串解析成XML.txtjdom解析XML文件and把字符串解析成XML.txt
Jdom操作、创建和解析XML Jdom操作、创建和解析XML Jdom操作、创建和解析XML
赠送jar包:jdom2-2.0.6.jar; 赠送原API文档:jdom2-2.0.6-javadoc.jar; 赠送源代码:jdom2-2.0.6-sources.jar; 赠送Maven依赖信息文件:jdom2-2.0.6.pom; 包含翻译后的API文档:jdom2-2.0.6-javadoc-API文档-...