拿到pull解析器
XmlPullParser xmlPullParser = Xml.newPullParser();
-----------另外一種方式---------------
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser xmlPullParser = factory.newPullParser();
拿到xml文件,對象格式是Reader
InputStream is = getClassLoader().getResourceAsStream("weather.xml");
調用解析器的setInput()
方法將XML文件設置進去開始解析
xmlPullParser.setInput(is);
開始解析
-
拿到指針所在當前節點的事件類型
int type = xmlPullParser.getEventType();
-
事件類型主要有五種
- START_DOCUMENT:xml頭的事件類型
- END_DOCUMENT:xml尾的事件類型
- START_TAG:開始節點的事件類型
- END_TAG:結束節點的事件類型
- TEXT:文本節點的事件類型
-
如果獲取到的事件類型不是END_DOCUMENT,就說明解析還沒有完成,如果是,解析完成,while循環結束
//判斷是否解析完畢 while(type != XmlPullParser.END_DOCUMENT)
-
當我們解析到不同節點時,需要進行不同的操作,所以判斷一下當前節點的name
//拿取結點名稱 String nodeName = xmlPullParser.getName();
-
獲取節點內容文本內容也是一個節點,屬于文本節點,回車符是一個文本節點
//獲取節點內容,此方法代表的含義是獲取當前節點的下一個節點的文本內容,運行完此函數指針已指向此標簽的結束標簽 String body = xmlPullParser.nextText();
-
節點的移動
//把節點移動到下一個節點,并返回該節點的事件類型 type = xmlPullParser.next();