XML的PULL解析

ull解析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解析


    版权声明:感谢summerpxy的分享,转载请取得原作者同意

你可能感兴趣的:(XML的PULL解析)