XmlPullParser 解析
来源:互联网 发布:mdi胶 知乎 编辑:程序博客网 时间:2024/05/17 09:37
总结
XmlPullParser
以事件驱动模型解析XML文件 ,其中事件有
XmlPullParser.START_DOCUMENT //文档开始事件
XmlPullParser.END_DOCUMENT //文档结束事件
XmlPullParser.START_TAG //标签开始事件
XmlPullParser.END_TAG //标签结束事件
XmlPullParser.TEXT //内容事件
在解析过程中XMLPullParser对象的获取
1、通过XML类获取
XmlPullParser parser =XML.newPullParser();
2、通过XMLPullParserFactory类获取
XmlPullParserFactory factory =XmlPullParserFactory.newInstance();
factory.setNameSpaceAwared(true);
XmlPullParser parser =factory.newPullParser();
其中可以把XmlPullPaser 对象以游标的思想去理解,其中一些基本方法如下
getEventType()获取当前的事件
next()进入下一个事件
getAttributeValue(int index) 获取当前事件下的的参数值 index表示参数的位置
例如
<Tag
attribute="attribute1"
attribute="attribute2"
>
</Tag>
getText()方法获取当前事件下标签所包含的文本值
例如
<Tag>I am the text1 </Tag>
按照以上逻辑解析以下XML文件
<?xml version="1.0" encoding="utf-8"?>
<classList>
<class id="1" age="19" //getAttributeValue(int index) >一班</class> //START_TAG
<class id="2">二班</class>
<class id="3">三班</class>
<class id="4">四班</class>
</classList>
1、开始解析 getEventType() 当前事件是START_DOCUMENT
2、next() 当前事件是START_TAG 其中当前标签是<classList>
3、next() 当前是事件是START_TAG 其中当前标签是<class>
4、通过当前是事件下的 getAttributeValue(1) 获取id值 getText()方法获取"二班"值。
以此类推
最后以END_DOCUMENT事件结束解析
再举个复杂点的栗子:
<?xml version="1.0" encoding="utf-8"?>
<classList>
<class id="1" name="一班" >
<student id="1" >张三 </student>
<student id="2" >李四 </student>
</class>
<class id="2" name="二班" >
<student id="3" >王五</student>
<student id="4" >赵六</student>
</class>
<class id="3" name="三班" >
<student id="5" >小明</student>
<student id="6" >小高 </student>
</class>
<class id="4" name="四班" >
<student id="7" >小花</student>
<student id="8" >小红 </student>
</class>
</classList>
1、开始解析 getElementType() 当前事件类型是START_DOCUMENT
2、next() 当前事件类型是START_TAG 其中标签是<class> 可通过getAttributeValue(0) getAttributeValue(1)获取id和name值;
3、next() 当前事件类型是START_TAG 当前标签是<student> 可通过getAttributeValue(0)获取student的id值
以此类推
最后END_DOCUMENT事结束解析
以下由读者自己尝试解析:
<?xml version="1.0" encoding="utf-8"?>
<classList>
<class id="1" name="一班" >
<student id="1" >
<name>张三</name>
<sex>男</sex>
</student>
<student id="2" >
<name>李四</name>
<sex>男</sex>
</student>
</class>
<class id="2" name="二班" >
<student id="3" >
<name>王五</name>
<sex>男</sex>
</student>
<student id="4" >
<name>赵六</name>
<sex>男</sex>
</student>
</class>
</classList>
- XmlPullParser 解析
- android XmlPullParser解析xml
- Android XmlPullParser工具解析
- android 解析xml -XmlPullParser
- XmlPullParser解析XML文件
- 使用XmlPullParser解析XML
- XmlPullParser 解析器用法
- XmlPullParser解析xml数据
- XML解析&XMLPullParser
- Androidd-XmlPullParser解析XML
- XmlPullParser解析xml
- XmlPullParser解析XML文件
- xml解析,基于XmlPullParser
- Android-XmlPullParser解析XML
- XmlPullParser解析xml文件
- android中XmlPullParser解析
- XmlPullParser解析xml
- 14.xmlPullParser pull解析
- CSDN-markdown编辑器---功能字典
- 在VS2015下配置libvlc并实现一个简单RTSP的播放器
- 《站在巨著之上谈泛型》-- 第一节:Java语言中泛型的起源
- 关于Android Studio import时出现cannot find settings.jar错误
- Linux-常用Shell命令
- XmlPullParser 解析
- angualr.js框架的应用场景及特点
- 2016.12.9 js 加载过多 影响页面的加载速度
- Java 对象和类
- Xcode插件管理工具Alcatraz 的下载使用
- 深度学习框架的评估与比较
- MYSQL手工注入
- java JPanel中添加一张图片的方法
- 【安卓学习之开发工具】 Android Studio 学习 二 -- 遇到的问题