使用Pull解析Xml
XML文件解析 Pull简介 START_DOCUMENT 大致流程是从本地读出xml文件,然后使用pull方式从xml中解析出我们需要的数据。 使用Pull方式解析XML步骤 try { //获取当前事件 eventType = xrp.getEventType(); List<City>cities = null; List<County>counties = null; //判断是否已到文档尾部 while(eventType!=XmlResourceParser.END_DOCUMENT){ switch (eventType) { //文档头部 case XmlResourceParser.START_DOCUMENT: Log.e("TAG","解析开始...."); mChinaList = new ArrayList<>(); break; //标签头 case XmlResourceParser.START_TAG: Log.e("TAG","解析节点: "+xrp.getName()); if(xrp.getName().equals("province")){ prvoNodeName = xrp.getName(); province = new Province(); province.setId(xrp.getAttributeValue(0)); province.setName(xrp.getAttributeValue(1)); cities = new ArrayList<>(); province.setCities(cities); mChinaList.add(province); }else if (xrp.getName().equals("city")) { cityNodeName = xrp.getName(); city = new City(); city.setId(xrp.getAttributeValue(0)); city.setName(xrp.getAttributeValue(1)); cities.add(city); //每解析出一个城市都加入到arraylist中 counties = new ArrayList<>(); city.setCounties(counties); //每一个城市又会有很多的县或区,新添加一个城市创建一个County集合加入City }else if (xrp.getName().equals("county")) { county = new County(); county.setId(xrp.getAttributeValue(0)); county.setName(xrp.getAttributeValue(1)); county.setWeatherCode(xrp.getAttributeValue(2)); counties.add(county); } break; //标签尾 case XmlResourceParser.END_TAG: Log.e("TAG","解析节点结束: "+xrp.getName()); break; default: break; } //转向下一个事件 eventType = xrp.next(); } } catch (Exception e) { e.printStackTrace(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |