Android 解析XML之三 PULL

来源:互联网 发布:linux注销桌面命令 编辑:程序博客网 时间:2024/05/29 13:16

在android系统中解析这些xml的方式,是使用pul解析器进行解析的,它和sax解析一样(感觉要比sax简单点),也是采用事件驱动进行解析的,当pull解析器,开始解析之后,我们可以调用它的next()方法,来获取下一个解析事件(就是开始文档,结束文档,开始标签,结束标签),当处于某个元素时可以调用XmlPullParser的getAttributte()方法来获取属性的值,也可调用它的nextText()获取本节点的值。


实现于activity中:

//针对Pull解析public List<Map<String,String>> getPullData(){List<Map<String,String>> list = new ArrayList<Map<String,String>>();XmlResourceParser xrp = getResources().getXml(R.xml.websites);//直到文档的结尾处try {while(xrp.getEventType() != XmlResourceParser.END_DOCUMENT){//如果遇到开始标签if(xrp.getEventType() == XmlResourceParser.START_TAG){String tagName = xrp.getName(); //取得标签名if(tagName.equals("website")){Map<String,String> map = new HashMap<String,String>();String id = xrp.getAttributeValue(null, "id"); //通过属性名获取属性值map.put("id", id);String src = xrp.getAttributeValue(1);//通过索引值获取属性值map.put("src", src);map.put("name", xrp.nextText());list.add(map);}}xrp.next(); //解析下一个事件}} catch (XmlPullParserException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return list;}




原创粉丝点击