Android学习笔记4--XmlPullParser的使用

来源:互联网 发布:知乎 亦庄锋创科技园 编辑:程序博客网 时间:2024/05/18 00:56

xml文件的解析器XmlPullParser的使用,解析一个xml文件
1.获取解析器对象
2.设置解析器的参数
3.获取解析的事件类型
4.判断事件类型进行解析的逻辑

public static List<Channel> parserXml(InputStream in) throws Exception{        //[0]声明集合对象          List<Channel> weatherLists = null;         Channel  channel = null;        //[1]获取XmlPullParser 解析的实例         XmlPullParser parser = Xml.newPullParser();        //[2]设置XmlPullParser 的参数         parser.setInput(in, "utf-8");        //[3]获取事件类型        int type = parser.getEventType();        while(type!= XmlPullParser.END_DOCUMENT){            switch (type) {            case XmlPullParser.START_TAG:   //解析开始标签                //[4]具体判断一下 解析到是哪个开始标志                if ("weather".equals(parser.getName())) {                    //[5]创建一个集合对象                    weatherLists = new ArrayList<Channel>();                }else if("channel".equals(parser.getName())){                    //[6]创建Channel对象                    channel = new Channel();                    //[7]获取id值                     String id = parser.getAttributeValue(0);                    channel.setId(id);                }else if("city".equals(parser.getName())){                    //[8]获取city的数据                     String city = parser.nextText();                    channel.setCity(city);                }else if("temp".equals(parser.getName())){                    //[8]获取city的数据                     String temp = parser.nextText();                    channel.setTemp(temp);                }else if("wind".equals(parser.getName())){                    //[8]获取city的数据                     String wind = parser.nextText();                    channel.setWind(wind);                }else if("pm250".equals(parser.getName())){                    //[8]获取city的数据                     String pm250 = parser.nextText();                    channel.setPm250(pm250);                }                break;            case XmlPullParser.END_TAG:     //解析结束标志                 //判断要解析的结束标签                 if ("channel".equals(parser.getName())) {                    //把javabean对象存到集合中                     weatherLists.add(channel);                }                break;            }            //不停的向下解析            type = parser.next();        }        return weatherLists;    }}
0 0
原创粉丝点击