在使用pull解析xml文件时出现如下问题:
org.xmlpull.v1.XmlPullParserException: precondition: START_TAG (position:END_TAG </introduction>@10:21 in java.io.InputStreamReader@40ce2040)。
当时查一遍一遍的查编码,都没发现问题。最后使用log.i的方式锁定了代码问题出。发现出错在XmlPullParser 接口里的nexttext()方法上。
查看代码:
else if(rivers!=null){
if (tag.equals("introduction")) {
parser.next();
rivers.setIntroduction(parser.getText());
Log.i("tag","创建river并且得到属性值="+parser.nextText());
}
此方法的意思是:取下个扫描点text的值;
我 使用了Log.i("tag","创建river并且得到属性值="+parser.nextText());印证取值的正确性。印证中使用了parser.nextText())方法取值,同时光标向下一个TAG点移动。本来验证的是START_TAG标签,而光标移动到END_TAG 标签。这就出现解析异常(android不知道该如何做,只好停止扫描,扫描结束)。