XML:

<?xml version="1.0" encoding="UTF-8"?><persons><person id = "23"><name>张老师</name><age>21</age></person><person id = "20"><name>李老师</name><age>25</age></person></persons>


Person类:

package com.pull.domain;public class Person {private int id;private String name;private int age;public int getId() {return id;}public Person(int id, String name, int age) {super();this.id = id;this.name = name;this.age = age;}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;}public Person() {// TODO Auto-generated constructor stub}@Overridepublic String toString() {return "Person [id=" + id + ", name=" + name + ", age=" + age + "]";}}


PullXMLTools类:

package com.pull.parser;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlPullParserException;import org.xmlpull.v1.XmlPullParserFactory;import com.pull.domain.Person;/** * 主要是使用PULL解析xml *  * @author jack *  */public class PullXMLTools {public PullXMLTools() {// TODO Auto-generated constructor stub}/** * @param inputStream *            从服务器获取xml文件,以流的形式返回 * @param encode *            编码格式 * @return * @throws Exception */public static List<Person> parseXML(InputStream inputStream, String encode)throws Exception {List<Person> list = null;Person person = null;// 装载解析每一个person节点的内容// 创建一个xml解析的工厂XmlPullParserFactory factory = XmlPullParserFactory.newInstance();// 获得xml解析类的引用XmlPullParser parser = factory.newPullParser();parser.setInput(inputStream, encode);// 获得事件的类型int eventType = parser.getEventType();while (eventType != XmlPullParser.END_DOCUMENT) {switch (eventType) {case XmlPullParser.START_DOCUMENT:list = new ArrayList<Person>();break;case XmlPullParser.START_TAG:if ("person".equals(parser.getName())) {person = new Person();// 取出属性值int id = Integer.parseInt(parser.getAttributeValue(0));person.setId(id);} else if ("name".equals(parser.getName())) {String name = parser.nextText();// 获取该节点的内容person.setName(name);} else if ("age".equals(parser.getName())) {int age = Integer.parseInt(parser.nextText());person.setAge(age);}break;case XmlPullParser.END_TAG:if ("person".equals(parser.getName())) {list.add(person);person = null;}break;}eventType = parser.next();}return list;}}


Test类:

package com.pull.test;import java.io.InputStream;import java.util.List;import com.pull.domain.Person;import com.pull.http.HttpUtils;import com.pull.parser.PullXMLTools;public class Test {public Test() {// TODO Auto-generated constructor stub}/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubString path = "http://192.168.1.125:8080/myhttp/person.xml";InputStream inputStream = HttpUtils.getXML(path);List<Person> list = null;try {list = PullXMLTools.parseXML(inputStream, "utf-8");for (Person person : list) {System.out.println(person.toString());}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}


更多相关文章

  1. Android -很全的android操作内容丰富
  2. Android Studio App设置TextView文字内容大小颜色
  3. 值得学习的博客内容

随机推荐

  1. Android中Intent传递对象的两种方法(Seri
  2. Android(安卓)App开发基础篇—四大组件之
  3. Android总结篇系列:Android广播机制
  4. Android(安卓)L添加kk版的OOBE开机向导
  5. ListView setOnItemClickListener无效原
  6. Android开发学习笔记(十一)ListView/Activi
  7. 如何写Android(安卓)init.rc
  8. 在Android上用PHP编写应用- PFA初探
  9. android使用指定的字体
  10. android icon 大小