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();

}

}