Android之使用Pull解析Xml数据

来源:互联网 发布:网络诈骗200元 编辑:程序博客网 时间:2024/05/23 16:53
  • 1.Xml解析方法有DOM,SAX,DOM4J,PULL解析等方式,PULL解析是Android中为我们提供的XML解析方式
  • 2.获取解析器工厂对象:
 XmlPullParserFactory factory=XmlPullParserFactory.newInstance();
  • 获取解析器对象:
 XmlPullParser xpp=factory.newPullParser();
  • XmlPullParser接口的常量及方法:
     START_DOCUMENT:该常量用来标识开始解析文档的事件。
     END_DOCMENT:文档结束
     START_TAG:元素开始
     END_TAG:元素结束
     COMMENT:注释
     TEXT:内容
     nextTag():读取下一个标记
     getEventType():取得事件类型
     getText():取得内容
     getName():取得元素名称

  • 3.实现代码:

public class PullXmlUtil {    private InputStream is;    public PullXmlUtil(InputStream is){        this.is=is;    }    public List getAllElement() throws XmlPullParserException, IOException {        List myData=null;        XmlPullParserFactory factory=XmlPullParserFactory.newInstance();        XmlPullParser xpp=factory.newPullParser();        xpp.setInput(is,"UTF-8");        int eventType=xpp.getEventType();        String elementName="";        while(eventType!=XmlPullParser.END_DOCUMENT){            switch (eventType){                case XmlPullParser.START_DOCUMENT:                    myData=new ArrayList();                    break;                case XmlPullParser.START_TAG:                    elementName=xpp.getName();                    break;                case XmlPullParser.TEXT:                    if(elementName.equals("string"))                        myData.add(xpp.getText());                    break;                case XmlPullParser.END_TAG:                    break;            }            eventType=xpp.next();        }        return myData;    }}
  • 使用时直接传InputStream实例化一个对象,然后再调用其方法即可
0 0