pull解析

来源:互联网 发布:linux内核开发流程 编辑:程序博客网 时间:2024/05/01 02:43
//获取到src文件夹下的资源文件InputStream is = getClassLoader().getResourceAsStream("weather.xml");//拿到pull解析器对象XmlPullParser xp = Xml.newPullParser();//初始化try {xp.setInput(is, "gbk");//获取当前节点的事件类型,通过事件类型的判断,我们可以知道当前节点是什么节点,从而确定我们应该做什么操作int type = xp.getEventType();City city = null;while(type != XmlPullParser.END_DOCUMENT){//根据节点的类型,要做不同的操作switch (type) {case XmlPullParser.START_TAG://获取当前节点的名字if("weather".equals(xp.getName())){//创建city集合对象,用于存放city的javabeancityList = new ArrayList<City>();}else if("city".equals(xp.getName())){//创建city的javabean对象city = new City();}else if("name".equals(xp.getName())){//获取当前节点的下一个节点的文本String name = xp.nextText();city.setName(name);}else if("temp".equals(xp.getName())){//获取当前节点的下一个节点的文本String temp = xp.nextText();city.setTemp(temp);}else if("pm".equals(xp.getName())){//获取当前节点的下一个节点的文本String pm = xp.nextText();city.setPm(pm);}break;case XmlPullParser.END_TAG:if("city".equals(xp.getName())){//把city的javabean放入集合中cityList.add(city);}break;}//把指针移动到下一个节点,并返回该节点的事件类型type = xp.next();}for (City c : cityList) {System.out.println(c.toString());}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}

0 0
原创粉丝点击