Browse » Home » Documentation, Resource » Blog article: XmlPullParser

June 3rd, 2009, EGGer

XmlPullParser是Android平台标准的XML解析器,它的正确名字应该是“XML PULL PARSER”,这项技术来自一个开源的XML解析API项目XMLPULL

它有两个比较重要的方法next()和nextToken(),官方文档的解释将next()作为处理高等级解析事件方法,而nextToken()则相反,专门处理 low level tokens。getEventType()可以返回当前时间处理的模式。

使用方法:

具体的 用法请参照官方文档,下边引用Almond Mendoza的一个例子作为比对:

public static void getAllXML(String url) throws
		XmlPullParserException, IOException, URISyntaxException{
	XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
	factory.setNamespaceAware(true);
	XmlPullParser parser = factory.newPullParser();
	parser.setInput(new InputStreamReader(getUrlData(url)));
	XmlUtils.beginDocument(parser,"results");
	int eventType = parser.getEventType();
	do{
	       	 XmlUtils.nextElement(parser);
	       	 parser.next();
	       	 eventType = parser.getEventType();
	       	 if(eventType == XmlPullParser.TEXT){
	       		 Log.d("test",parser.getText());
	       	 }
	} while (eventType != XmlPullParser.END_DOCUMENT) ;
}
public InputStream getUrlData(String url)
		throws URISyntaxException, ClientProtocolException, IOException {
	DefaultHttpClient client = new DefaultHttpClient();
	HttpGet method = new HttpGet(new URI(url));
	HttpResponse res = client.execute(method);
	return  res.getEntity().getContent();
}

说明:

getAllXml()将调用getUrlData来返回一个InputStream对象,随后将这个对象传递给XmlPullParser来解析XML所包含的信息。

XmlPullParser parser = factory.newPullParser();
parser.setInput(new InputStreamReader(getUrlData(url)));

其它文档:

Tags: ,

Posted in Documentation, Resource |

Random Posts



Leave a Reply

You must be logged in to post a comment.