拿到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();