android 用Pull 读取XML

来源:互联网 发布:学唱歌入门教程软件 编辑:程序博客网 时间:2024/06/06 00:57
xml文件:
<?xml version="1.0" encoding="UTF-8"?><persons><person id="23"><name>liming</name><age>30</age></person><person id="20"><name>zhangxiaoxiao</name><age>25</age></person></persons>


模板类:

public class person {private int id;private String name;private int age;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "person [id=" + id + ", name=" + name + ", age=" + age + "]";}}
读取XML代码:

/** * 读取XML文件 * @param xml * @return * @throws Exception */public List<person> getPerson(InputStream xml) throws Exception{XmlPullParser pullPare=Xml.newPullParser();pullPare.setInput(xml,"UTF-8");int event=pullPare.getEventType();person p=null;ArrayList<person> ps=null;while(event!=XmlPullParser.END_DOCUMENT){switch(event){case XmlPullParser.START_DOCUMENT:ps=new ArrayList<person>();break;case XmlPullParser.START_TAG:if("person".equals(pullPare.getName())){p=new person();int i=Integer.parseInt(pullPare.getAttributeValue(null, "id"));p.setId(i);}else if("name".equals(pullPare.getName())){p.setName(pullPare.nextText());}else if("age".equals(pullPare.getName())){p.setAge(new Short(pullPare.nextText()));}break;case XmlPullParser.END_TAG:if("person".equals(pullPare.getName())){ps.add(p);p=null;}break;}event=pullPare.next();}return ps;}
调用读取并打印:

personservice p=new personservice();InputStream xml=this.getClass().getClassLoader().getResourceAsStream("person.xml");try {List<person> pl=p.getPerson(xml);for(person item :pl){Log.i("循环输出", item.toString());}Log.i("结果", "成功");} catch (Exception e) {// TODO Auto-generated catch blockLog.i("结果", "错误");e.printStackTrace();}


	
				
		
原创粉丝点击