Android 解析XML之三 PULL

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


实现于activity中:

//针对Pull解析
	public List> getPullData(){
		
		List> list = new ArrayList>();
		
		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 map = new HashMap();
						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 block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
	}
	




你可能感兴趣的:(android)