Android解析xml数据

在移动开发中,服务器常以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 ;
    }
}


   
原文地址:https://www.cnblogs.com/gwd1154978352/p/6831903.html