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>

转载于:https://www.cnblogs.com/xiumukediao/p/4382133.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值