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 ;
    }
}


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值