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; } }
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文件格式,文件开头不能有空行或者空格版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。