Android XmlPullParser的简单应用


Android XmlPullParser的简单应用
  1. package lxy.litsoft;  
  2.   
  3. import java.io.IOException;  
  4. import java.io.StringReader;  
  5. import org.xmlpull.v1.XmlPullParser;  
  6. import org.xmlpull.v1.XmlPullParserException;  
  7. import org.xmlpull.v1.XmlPullParserFactory;  
  8. import android.app.Activity;  
  9. import android.os.Bundle;  
  10. import android.util.Log;  
  11.   
  12. public class AppMain extends Activity{  
  13.     public void onCreate(Bundle savedInstanceState) {  
  14.         super.onCreate(savedInstanceState);  
  15.         setContentView(R.layout.main);  
  16.         try {  
  17.             testParser();  
  18.         } catch (XmlPullParserException e) {  
  19.             e.printStackTrace();  
  20.         } catch (IOException e) {  
  21.             e.printStackTrace();  
  22.         }  
  23.     }  
  24.       
  25.     private void testParser()throws XmlPullParserException,IOException  
  26.     {  
  27.         /**XmlPullParserFactory: this class is used to create implementation of XML Pull Parser.**/  
  28.         //XmlPullParserFactory这个类用于实现一个XML的解析器   
  29.         /**newInstance(): Create a new instance of a PullParserFactory that can be used to create XML pull parsers .**/  
  30.         //newInstance()方法用于实例化一个PullParserFactory对象,以便于创建XML解析器   
  31.         XmlPullParserFactory factory = XmlPullParserFactory.newInstance();  
  32.           
  33.         /**setNamespaceAware():Specifies that the parser produced by this factory will provide support for XML names paces.**/  
  34.         //指定由XmlPullParserFactory对象产生的解析器能提供对XML命名空间的支持   
  35.         factory.setNamespaceAware(true);  
  36.           
  37.         /**Creates a new instance of a XML Pull Parser using the currently configured factory features.**/  
  38.         //用当前的XmlPullParserFactory实例化一个XmlPullParser对象   
  39.         XmlPullParser xpp = factory.newPullParser();  
  40.   
  41.         /**Set the input source for parser to the given reader and resets the parser.**/  
  42.         //为解析器输入源,源为一个StringReader对象   
  43.         /**StringReader:A specialized Reader that reads characters from a String in a sequential manner. **/  
  44.         //StringReader类是一个专门的阅读器,以顺序的方式从字符串里读取字符   
  45.         xpp.setInput( new StringReader ( "<liu>I am Liuliu</liu><huo>Missing Huohuo</huo>" ) );  
  46.           
  47.         /**Returns the type of the current event (START_TAG, END_TAG, TEXT, etc.)**/  
  48.         int eventType = xpp.getEventType();  
  49.         while (eventType != XmlPullParser.END_DOCUMENT) {  
  50.              if(eventType == XmlPullParser.START_DOCUMENT) {  
  51.                  Log.d("test""Start document");  
  52.              } else if(eventType == XmlPullParser.END_DOCUMENT) {  
  53.                  Log.d("test""End document");  
  54.              } else if(eventType == XmlPullParser.START_TAG) {  
  55.                  Log.d("test""Start tag: "+xpp.getName());  
  56.              } else if(eventType == XmlPullParser.END_TAG) {  
  57.                  Log.d("test""End tag: "+xpp.getName());  
  58.              } else if(eventType == XmlPullParser.TEXT) {  
  59.                  Log.d("test""Text: "+xpp.getText());  
  60.              }  
  61.              eventType = xpp.next();  
  62.         }  
  63.     }  
  64. }  

输出结果:

Start document

Start tag: liu

Text:I am LIuliu

End tag: liu

Start tag: huo

Text: Missing Huohuo

End tag: huo

相关内容