package com.shz.services; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlPullParser; import android.util.Xml; import com.shz.domain.SmsInfo; public class SmsService { public static List<SmsInfo> getSmsList(InputStream is) throws Exception { List<SmsInfo> list = null; SmsInfo sms = null; XmlPullParser xmlParser = Xml.newPullParser(); xmlParser.setInput(is, "utf-8"); int type = xmlParser.next(); while(type != XmlPullParser.END_DOCUMENT) { switch (type) { case XmlPullParser.START_TAG: if(xmlParser.getName().equals("Smss")) { list = new ArrayList<SmsInfo>(); } else if(xmlParser.getName().equals("Sms")) { sms = new SmsInfo(); sms.setId(Integer.parseInt(xmlParser.getAttributeValue(0))); } else if(xmlParser.getName().equals("type")) { sms.setType(Integer.parseInt(xmlParser.nextText())); } else if(xmlParser.getName().equals("datetime")) { sms.setDatetime(xmlParser.nextText()); } else if(xmlParser.getName().equals("body")) { sms.setBody(xmlParser.nextText()); } else if(xmlParser.getName().equals("address")) { sms.setAddress(xmlParser.nextText()); } break; case XmlPullParser.END_TAG: if(xmlParser.getName().equals("Sms")) { list.add(sms); sms = null; } break; default: break; } type = xmlParser.next(); } return list; } }
<?xml version='1.0' encoding='utf-8' standalone='yes'?> <Smss> <Sms id="0" > <type>1</type> <datetime>2014-08-09 15:08:23</datetime> <body>明天过来吃饭0</body> <address>15012345678</address> </Sms> <Sms id="1" > <type>1 </type> <datetime>2014-08-09 15:08:23</datetime> <body>明天过来吃饭1</body> <address>15012345679</address> </Sms> </Smss>