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)));
其它文档:
- XmlPullParserFactory
- defineEntityReplacementText(String, String)
- getName()
- getNamespace()
- getText()
- next()
- nextToken()
- setInput(InputStream, String)
- FEATURE_PROCESS_DOCDECL
- FEATURE_VALIDATION
- START_DOCUMENT
- START_TAG
- TEXT
- END_TAG
- END_DOCUMENT
Posted in Documentation, Resource |



