利用Pull解析xml时,总抛出这个异常:Error parsing document的解决方案
来源:互联网 发布:mac os 10.12.1升级包 编辑:程序博客网 时间:2024/05/29 15:08
前两天在写一个新闻资讯客户端时,利用Pull从web服务器返回的xml数据时,报了下面的错误消息,直到现在才找到错误的原因。就因为这个小错误我写了很多种单元测试的方法,从web返回的xml数据是正确的,能在浏览器上进行查看,可一到Pull解析时,就报了如下的错误消息:
org.xmlpull.v1.XmlPullParserException: Error parsing document. (position:line -1, column -1) caused by: org.apache.harmony.xml.ExpatParser$ParseException: At line 3, column 0: XML or text declaration not at start of entity
at org.apache.harmony.xml.ExpatPullParser$ByteDocument.flush(ExpatPullParser.java:958)at org.apache.harmony.xml.ExpatPullParser$Document.pump(ExpatPullParser.java:769)
at org.apache.harmony.xml.ExpatPullParser$Document.dequeue(ExpatPullParser.java:813)
at org.apache.harmony.xml.ExpatPullParser.next(ExpatPullParser.java:302)
at test.NewsTest.testNetConn(NewsTest.java:65)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1448)
这样的异常消息,以前不是没有见过,以前出现这个异常和解决方法详见下面的代码:
<!--这是 xml文件中的start document 语法 注意这个注释是不能放在 开头的也就是start document 的前面--><?xml version="1.0" encoding="utf-8" ?><persons> <person id="1"> <name>张三</name> <age>19</age> </person> <person id="2"> <name>李四</name> <age>20</age> </person> <person id="3"> <name>wangwu</name> <age>22</age> </person> </persons><!--这是xml 文件中结束部分的end document 语法-->
解决方法就是将上面注释的内容放到start document的后面,然后用Pull解析时,没有抛出异常。今天无意间看到以前的这个异常消息的解决方法,就联想到前天遇到的同样的异常消息,是不是也是因为从web服务器返回的xml数据的开发部分,包含了其他的信息,于是我进行了测试。
首先,下面是从web服务器返回xml数据的jsp界面的代码:
<%@ page language="java" import="java.util.*,entity.*" pageEncoding="UTF-8" contentType="text/xml; charset=UTF-8"%>
<%
List<News> list =(List<News>)request.getAttribute("news");
%>
<?xml version="1.0" encoding="utf-8"?>
<newslist>
<% for(News news : list){%>
<news id="<%=news.getNid()%>">
<title><%=news.getNtitle()%></title>
<author><%=news.getNauthor()%></author>
</news>
<%}%>
</newslist>
现在,来看一下,从浏览器里查看源码时的数据:
<?xml version="1.0" encoding="utf-8"?><newslist><news id="1"><title>H7N9禽流感</title>仔细看就会发现,多了两个行回车,产生的原因就是上面jsp界面黄色背景的代码部分,好,优化上面的jsp界面的代码如下:
<?xml version="1.0" encoding="utf-8"?><newslist><%List<News> list =(List<News>)request.getAttribute("news");%><% for(News news : list){%><news id="<%=news.getNid()%>"><title><%=news.getNtitle()%></title><author><%=news.getNauthor()%></author></news><%}%></newslist><%@ page language="java" import="java.util.*,entity.*" pageEncoding="UTF-8" contentType="text/xml; charset=UTF-8"%>经过这样的优化后,利用Pull解析从web服务器返回的xml数据时,再也不抛出上面的异常了。啊,就这么个问题,我花了差不多两天的时间才发现,当时,没想到主要是因为首先查看了网上的一些资料和解决方法,反倒把自己给误导进去了,直到看到自己以前同样的异常消息的解决方法,才想到这些解决方法。
希望,对大家有所帮助!
- 利用Pull解析xml时,总抛出这个异常:Error parsing document的解决方案
- Error parsing XML: junk after document element这样的错误
- unexpected exception parsing XML document from .......异常
- Error parsing XML: junk after document element
- 利用pull解析Xml
- Xml利用Pull解析
- SAX PULL DOCUMENT解析XML总结
- 利用pull解析xml文件
- Error parsing document. (position:line -1, column -1) 异常
- DOM4J 操作 XML 时抛出 org.dom4j.IllegalAddException 的异常的解决方案
- xml parsing fatal error:Invalid document struture,line 1,
- Atitit. Dwr 抛出异常error解决方案
- android编写UI出现error: Error parsing XML: unbound prefix 的错误原因及解决方案
- XML的pull解析
- xml的pull解析
- Xml的pull解析
- xml的pull解析
- Xml的pull解析
- jsp页面参数测试
- 数据泵 EXPDP 导出工具的使用
- JavaScript preventDefault
- XMLSchema学习总结
- Redis学习手册(持久化)
- 利用Pull解析xml时,总抛出这个异常:Error parsing document的解决方案
- sublime text 2支持gbk编码-解决浏览器中文乱码的问题
- 最长回文子串
- 将string[] 转换int[]
- 创建你自己的 iOS 框架
- 旋转矩阵到欧拉角的转换
- NYOJ93 汉诺塔(三)
- 谈找工作的经历和经验
- linux内核kobject事件处理详解