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
}
Parsing such XML
<?xml Version = "1.0" encoding = "Utf-8"?>
<infos>
<city id = "1" >
<temp>20/30</temp>
<weather> Rainy </weather>
<wind> South Wind </wind>
<name> Shanghai </name>
<pm>200</pm>
</city>
<city id = "2" >
<temp>20/33</temp>
<weather> Rain </weather>
<wind> North Wind </wind>
<name> Nanjing </name>
<pm>300</pm>
</city>
</infos>
Android XML Pull Parsing