读取xml报错:org.xml.sax.SAXParseException: 文件过早结束。

ies073288 2011-08-05 03:47:34
源码:

String xmlStr="xxxx"//一串带有中文的xml字符串
SAXBuilder builder = new SAXBuilder(false);
Document doc = null;
BufferedReader br=null;
InputStream is=null;
try {
is=new ByteArrayInputStream(xmlStr.getBytes());
br=new BufferedReader(new InputStreamReader(is,"UTF-8"));
doc = builder.build(br);
} catch (Exception e) {
log.error("xml read error!!!", e);
return null;
}
Element root = doc.getRootElement();

在doc = builder.build(br);这一样报错。错误如下:
Caused by: org.xml.sax.SAXParseException: 文件过早结束。
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:370)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:764)
at com.heda.kjgl.client.event.EventInputAction.parseXml(EventInputAction.java:175)
at com.heda.kjgl.client.event.EventInputAction.getHdidByXml(EventInputAction.java:150)
at com.heda.kjgl.client.event.EventInputAction.saveEventInfo(EventInputAction.java:272)
at com.heda.transfer.busi.TransferBusiMgr.sendMes(TransferBusiMgr.java:86)
at com.heda.transfer.busi.TransferBusiSvc.sendMes(TransferBusiSvc.java:53)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:578)



求大侠们帮忙。。。
...全文
9927 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hqhe_nj 2012-02-22
  • 打赏
  • 举报
回复
问题解决了没有?
顾燕良Simmaker 2011-08-05
  • 打赏
  • 举报
回复
我估计你的目录带中文的bug,可能是编码,你换个英文的看看
luohuijun619 2011-08-05
  • 打赏
  • 举报
回复
编码问题,
softroad 2011-08-05
  • 打赏
  • 举报
回复
我把你的xml存为gb2312格式xml文件用ie打开报错了,存为UTF-8就OK了,可能是你读取的xml字符串编码不正确,设定为UTF-8试试吧。
ies073288 2011-08-05
  • 打赏
  • 举报
回复
对了。顺便说下,这串xml字符串是从别的地方读取的。所以这串xml可能里面会含有回车换行的。是不是这些会影响xml的读取?
ies073288 2011-08-05
  • 打赏
  • 举报
回复
上面那个 比较乱。。。

<?xml version="1.0" encoding="UTF-8" ?>
<root>
<Type>200300</Type>
<DATE>2011-08-05 01:41:13</DATE>
<Content>
<PRID>2302</PRID>
<PRCrtName>潘晨</PRCrtName>
<PRCrtBank>交通银行湖北省分行</PRCrtBank>
<PRCrtDept>综合科</PRCrtDept>
<PRCrtOffice />
<PRRetName>潘晨</PRRetName>
<PRRetBank>交通银行湖北省分行</PRRetBank>
<PRRetDept />
<PRRetOffice />
<PRRetMobile>18602753177</PRRetMobile>
<PRTitle>p[</PRTitle>
<PRDesc>网点号:交易码:报错代码:报错信息:期望结果:交易柜员号:</PRDesc>
<PRHappenTime>2011/08/05 13:37:00</PRHappenTime>
<PRCategoryID>2</PRCategoryID>
<PRCategory>分类1</PRCategory>
<PRType>分类11</PRType>
<PRItem>分类112</PRItem>
<PRImpact>C</PRImpact>
<DealTime>2011-08-05 01:41:13</DealTime>
<DealStatus>1</DealStatus>
</Content>
</root>
ies073288 2011-08-05
  • 打赏
  • 举报
回复
xml内容:
<?xml version="1.0" encoding="UTF-8"?><root><Type>200300</Type><DATE>2011-08-05 01:41:13</DATE><Content><PRID>2302</PRID><PRCrtName>潘晨</PRCrtName><PRCrtBank>交通银行湖北省分行</PRCrtBank><PRCrtDept>综合科</PRCrtDept><PRCrtOffice></PRCrtOffice><PRRetName>潘晨</PRRetName><PRRetBank>交通银行湖北省分行</PRRetBank><PRRetDept></PRRetDept><PRRetOffice></PRRetOffice><PRRetMobile>18602753177</PRRetMobile><PRTitle>p[</PRTitle><PRDesc>网点号:
交易码:
报错代码:
报错信息:
期望结果:
交易柜员号:
</PRDesc><PRHappenTime>2011/08/05 13:37:00</PRHappenTime><PRCategoryID>2</PRCategoryID><PRCategory>分类1</PRCategory><PRType>分类11</PRType><PRItem>分类112</PRItem><PRImpact>C</PRImpact><DealTime>2011-08-05 01:41:13</DealTime><DealStatus>1</DealStatus></Content></root>


xml的内容应该不会有错,我把这段xml用ie打开是可以的
shawn.bug 2011-08-05
  • 打赏
  • 举报
回复
你都知道文件过早结束,那肯定是xml文件格式拼错了嘛!
softroad 2011-08-05
  • 打赏
  • 举报
回复
发下xml

67,547

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧