Android XML pull解析

List<weatherinfos> listinfo = null;   

weatherinfos singleinfo = null;

  XmlPullParser parse = Xml.newPullParser();   

try {   

 parse.setInput(in, "utf-8");    

int eventtype = parse.getEventType();    

while (eventtype != XmlPullParser.END_DOCUMENT) {     

switch (eventtype) {     

case XmlPullParser.START_DOCUMENT:      

listinfo = new ArrayList<weatherinfos>();      

break;     

case XmlPullParser.START_TAG:      

if (parse.getName().equals("city")) {      

 singleinfo = new weatherinfos();      

 String strid = parse.getAttributeValue(0);       

singleinfo.setId(Integer.parseInt(strid));      

} else if (parse.getName().equals("temp")) {  

      //  eventtype = parse.next();       

String strtemp = parse.nextText();       

singleinfo.setTemp(strtemp);      

} else if (parse.getName().equals("weather")) {    

  // eventtype = parse.next();       

String strweather = parse.nextText();      

 singleinfo.setWeather(strweather);      

} else if (parse.getName().equals("wind")) {      

// eventtype = parse.next();       

String stewind = parse.nextText();       

singleinfo.setWind(stewind);      

} else if (parse.getName().equals("name")) {    

  // eventtype = parse.next();       

String cityname = parse.nextText();       

singleinfo.setName(cityname);      

} else if (parse.getName().equals("pm")) {     

 // eventtype = parse.next();       

String strpm = parse.nextText();       

singleinfo.setPm(strpm);      

}      break;

    case XmlPullParser.END_TAG:      

if (parse.getName().equals("city")) {     

  listinfo.add(singleinfo);      

 singleinfo = null;     

 }      break;     

default:      break;

    }     

eventtype = parse.next();    

}  

 } catch (Exception e) {    

// TODO: handle exception  

 }

 

解析如此XML

<?xml version = "1.0" encoding = "utf-8"?>
<infos>
 <city id = "1">
  <temp>20/30</temp>
  <weather>阴雨</weather>
  <wind>南风</wind>
  <name>上海</name>
  <pm>200</pm>
 </city>
 
 <city id = "2">
  <temp>20/33</temp>
  <weather>雨</weather>
  <wind>北风</wind>
  <name>南京</name>
  <pm>300</pm>
 </city>
</infos>

你可能感兴趣的:(android)