XML解析之PULL解析

 Pull解析XML文件的方式与SAX解析XML文件的方式大致相同,他们都是基于事件驱动的。所以,利用pull解析XML文件需要下面几个步骤:

     1)通过XMLPullParserFactory获取XMLPullParser对象。

     2)通过XMLPullParser对象设置输入流。

     3)通过parser.next(),持续的解析XML文件直到文件的尾部。

下面的几个方法是经常需要的:XMLPullParserFacotry.newInstance( )    facotry.newPullParser( )   parser.setInput( )       parser.next( ).

下面通过一个例子描述上面的几个步骤:

//1.第一步,创建解析工厂
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
//设置支持命名空间
factory.setNamespaceAware(true);
//2.生成parser对象			
XmlPullParser parser = factory.newPullParser();
//3.设置输入
parser.setInput(new StringReader("<?xml version=\"1.0\" ?><poem><title>静夜思</title><author>李白</author><content>床前明月光,疑似地上霜,举头忘明月,低头思故乡</content></poem>"));
//获取输入类型
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT)
 {
     if (eventType == XmlPullParser.START_DOCUMENT) {
	Log.d("tag", "----"+parser.getName());
	}
     if (eventType == XmlPullParser.START_TAG) {
	Log.d("tag", "----"+parser.getName());
	}
     if (eventType == XmlPullParser.TEXT) {
	Log.d("tag", "----"+parser.getText());
	}
     if (eventType == XmlPullParser.END_TAG) {
	Log.d("tag", "----"+parser.getName());
	}
   //不断的去更新
	eventType = parser.next();
 }

打印出的对象:

XML解析之PULL解析


你可能感兴趣的:(android,xmlpullparser)