开发者社区> 问答> 正文

android xml解析?报错

android刚入门,代码报错,请大家指引一下。

xml文件解析报错:如下信息

org.xmlpull.v1.XmlPullParserException: version expected (position:unknown @1 :38 in java.io.InputStreamReader@40d14740)

package service;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.xmlpull.v1.XmlPullParser;

import android.util.Xml;
import domain.Person;

public class PersonService {
	//static方法 ,不需要用到成员变量
	public static List<Person> getPersons(InputStream xml) throws Exception{
		List<Person> persons=null;
		Person person=null;
		XmlPullParser pullParser=Xml.newPullParser();
		pullParser.setInput(xml, "UTF-8");
		int event=pullParser.getEventType();
		while(event!=XmlPullParser.END_DOCUMENT){			
			switch (event) {
			case XmlPullParser.START_DOCUMENT:
				persons=new ArrayList<Person>();
				break;
			case XmlPullParser.START_TAG:
				if("person".equals(pullParser.getName())){
					int id=Integer.parseInt(pullParser.getAttributeValue(0));
					person=new Person();
					person.setId(id);
				}
				if("name".equals(pullParser.getName())){
					String name=pullParser.nextText();
					person.setName(name);
				}
				if("age".equals(pullParser.getName())){
					int age=Integer.parseInt(pullParser.nextText());
					person.setAge(age);
				}
				break;
			case XmlPullParser.END_TAG:
				if("person".equals(pullParser.getName())){
					persons.add(person);
					person=null;
				}
				break;
			}			
			event=pullParser.next();  //单元测试时,这一行报错
	}
		return persons;
}
}


展开
收起
爱吃鱼的程序员 2020-06-22 22:00:48 606 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    1.必须确保应用已经添加了网络通信权限

       <uses-permissionandroid:name="android.permission.INTERNET"/>

     

    2.soap请求的URL中的HOST部分不要使用ip地址,使用域名

     

    3. SoapSerializationEnvelopeenvelope=newSoapSerializationEnvelope(SoapEnvelope.VER11);

       中的SOAPVER要和服务端对应,也可以低于服务端,但是不能高于服务端。

    朋友,谢谢。只是解析本地自己创建一个xml文件呢,还没接触网络,服务器等相关知识。。

    这个我之前遇到过,是Android低版本中的一个Bug,高版本中修复了。建议你使用:

    //利用XmlPullParser解析器工厂产生一个实例
          XmlPullParserFactoryfactory=XmlPullParserFactory.newInstance();

    就没问题了。

    检查一下你的xml文件格式,文件开头不能有空行或者空格
    2020-06-22 22:01:04
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载

相关镜像