解析Xml有三种方式可选,sax ,dom ,pull??,,各有各的优点,但在android上是不推荐使用DOM来解析的一般都用SAX和PULL 这两个性能相近, SAX的解析方式大家可以去看MARS的教程 讲的也比较好喔PULL的话我个人觉得处理事件比较简单,所以就给不懂的同学详细讲讲,嘿嘿....希望大家都能明白感谢 传智的张老师,黎老师, 感谢勇军哥首先给大家看看我的笔记那么我们就开始吧很简单,这是我们要解析的xml文件,直接放在src之下
伍业雄
22
陈俊安
21
王世铭
22
复制代码
写个bean??嘿嘿.
package tree.love.bean;
import java.io.Serializable;
public class Person implements Serializable{
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;
}
public Person(){}
public Person(String name ,int age )
{
??this.name = name ;
??this.age = age ;
}
@Override
public String toString() {
??
??return this.name +",,"+this.age;
}
}
复制代码
然后这就是解析xml的代码了.返回一个List
package tree.love.xmlUitl;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import tree.love.bean.Person;
import android.util.Log;
import android.util.Xml;
public class MyPullxml {
private static final String XMLPULL_INFO = "XmlPull_Info";
public static List getDate(InputStream inStream)
{
??List persons = null ;
??Person currentPerson = null ;
??
??/**
? ?* android给我们提供了一个工具类'Xml'
? ?* 通过这个工具类可以很方便地去new一个Pull的解析器,返回类型是XmlPullParser
? ?*
? ?**/
??XmlPullParser xmlPull = Xml.newPullParser();
??
??try {
? ?/**
? ? * 提供的xml内容方式都是以输入流的方式InputStream
? ? **/
? ?xmlPull.setInput(inStream,"UTF-8");
? ?/**
? ? * 触发事件getEventType() =>返回事件码
? ? * 当它遇到某个字符,如果符合xml的语法规