xml的pull解析:


   //类加载器加载xml文件

InputStream is = MainActivity.class.getClassLoader().getResourceAsStream("weather.xml");

    //生成xml的pull解析器

    XmlPullParser pull = Xml.newPullParser();

    try {

    //设置输入流

pull.setInput(is, "utf-8");

        //解析器当前处于的状态

int type = pull.getEventType();

Weather weather = null ;

while (type != XmlPullParser.END_DOCUMENT) {

switch (type) {

            //当前是开始标签的节点

    case XmlPullParser.START_TAG:

                //拿到节点标签的名字

        String name = pull.getName();

            //判断节点标签的名字 (下面同这儿),然后放到weather对象中  

        if("channel".equals(name)){

            weather = new Weather();

            weather.setId(pull.getAttributeValue(0));

        }

            

        if("city".equals(name)){

            weather.setName(pull.nextText());

        }

        if("temp".equals(name)){

            weather.setTemp(pull.nextText());

        }

        if("wind".equals(name)){

            weather.setWind(pull.nextText());

        }

        break;

        //如果是结束标签的节点,此处将weather对象放入list集合保存

case XmlPullParser.END_TAG:

    String tagname = pull.getName();

    if("channel".equals(tagname)){

        list.add(weather);

    }

default:

    break;

        }

//此处必须写,否则不会向下执行

        type = pull.next();

        }

    } catch (Exception e) {

e.printStackTrace();

    }

}