在移动开发中,服务器常以xml形式向Android传递数据,这个时候就需要解析服务器传递过来的xml了,以下图为例,服务器传过来的数据如图所示
public class XmlParserUtils { //解析xml的业务方法 public List<News> parserXml(InputStream in) throws Exception { List<News> newsLists=null; News news=null; //获取xml的解析器 XmlPullParser xmlPullParser= Xml.newPullParser(); //设置解析器要解析的内容 xmlPullParser.setInput(in,"utf-8"); //获取解析的事件类型 int type=xmlPullParser.getEventType(); //不停的向下解析 while (type!=XmlPullParser.END_DOCUMENT){ //具体判断一下解析的是开始节点还是结束节点 switch (type){ case XmlPullParser.START_TAG://解析开始节点 //具体判断解析的是哪个开始标签 if("newss".equals(xmlPullParser.getName())){ //创建一个list集合 newsLists=new ArrayList<News>(); } else if ("news".equals(xmlPullParser.getName())){ news=new News(); } else if("title".equals(xmlPullParser.getName())){ news.setTitle(xmlPullParser.nextText()); } else if ("description".equals(xmlPullParser.getName())){ news.setDescription(xmlPullParser.nextText()); } else if ("image".equals(xmlPullParser.getName())){ news.setImage(xmlPullParser.nextText()); } else if ("type".equals(xmlPullParser.getName())){ news.setType(xmlPullParser.nextText()); } else if ("comment".equals(xmlPullParser.getName())){ news.setComment(xmlPullParser.nextText()); } break; case XmlPullParser.END_TAG: //解析结束标签 if ("news".equals(xmlPullParser.getName())){ //把Javabean添加到集合中 newsLists.add(news); } break; } //不断向下解析 type=xmlPullParser.next(); } return newsLists ; } }