这是要解析的xml
<pre name="code" class="html"><weather>
<channel id = '1'>
<city>北京</city>
<temp>39</temp>
<wind>2</wind>
<pm250>333</pm250>
</channel>
<channel id = '2'>
<city>九江</city>
<temp>36</temp>
<wind>3</wind>
<pm250>999</pm250>
</channel>
</weather>
对应解析的代码
List<Channel> list = null;
Channel c = null;
XmlPullParser parser = Xml.newPullParser();
InputStream in =openFileInput("weather.xml");
parser.setInput(in,"utf-8");
int type = parser.getEventType();
while(type!=XmlPullParser.END_DOCUMENT){
switch (type) {
case XmlPullParser.START_DOCUMENT:
list = new ArrayList<Channel>();
break;
case XmlPullParser.START_TAG:
if("channel".equals(parser.getName())){
c = new Channel();
c.setId(parser.getAttributeValue(null, "id"));
}else if("city".equals(parser.getName())){
c.setCity(parser.nextText());
}else if("temp".equals(parser.getName())){
c.setTemp(parser.nextText());
}else if("wind".equals(parser.getName())){
c.setWind(parser.nextText());
}else if("pm250".equals(parser.getName())){
c.setPm250(parser.nextText());
}
break;
case XmlPullParser.END_TAG:
if("channel".equals(parser.getName())){
list.add(c);
}
break;
default:
break;
}
type = parser.next();
}
in.close();