Android解析xml数据

来源:互联网 发布:mac怎么清除存储空间 编辑:程序博客网 时间:2024/05/29 09:34

在移动开发中,服务器常以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
原创粉丝点击