Android API学习之XmlPullParser
来源:互联网 发布:volatile c语言 编辑:程序博客网 时间:2024/06/05 04:15
Android API学习之XmlPullParser
公共方法:
pulic abstarct int getEventType()
方法功能描述:
返回当前事件类型(事件类型包括START_TAG, END_TAG, TEXT, START_DOCUMENT,END_DOCUMENT等等)
public abstarct String nextText()
方法功能描述:
如果当前事件是START_TAG,并且下一个元素是TEXT,该方法将返回元素包含的内容;
如果下一个事件END_TAG,该方法将返回空字符串,另外的情况将抛出异常。如果调用方法成功解析器将被自动移动到END_TAG位置
这个方法即可以用来解析空元素也可以用来解析非空元素,例如:
1. <tag>foo</tag>(这个表示非空元素)2. <tag></tag>(这个表示空元素,<tag/>和它相同)
它们可以用相同的代码来解析
p.nextTag();p.requireEvent(p.START_TAG, "", "tag");String content = p.nextText(); p.requireEvent(p.END_TAG, "", "tag");
这个方法和nextTag方法一起使用可以很容易的解析没有复杂内容的xml。
方法的内容实现原理如下:
if(getEventType() != START_TAG) { throw new XmlPullParserException("parser must be on START_TAG to read next text", this, null); } int eventType = next(); if(eventType == TEXT) { String result = getText(); eventType = next(); if(eventType != END_TAG) { throw new XmlPullParserException("event TEXT it must be immediately followed by END_TAG", this, null); } return result; } else if(eventType == END_TAG) { return ""; } else { throw new XmlPullParserException("parser must be on START_TAG or TEXT to read text", this, null); }
警告:在API 14版本以前,XmlPullParser是通过android.util.Xml来获取,因此调用这个方法成功之后,解析器有可能无法被自动移动到END_TAG位置,但是你可以利用手动的方式来实现
String text = xpp.nextText(); if (xpp.getEventType() != XmlPullParser.END_TAG) { xpp.next(); }
可能抛出的异常:
XmlPullParserException
IOException
public abstract int next ()
方法功能描述:
获取下一个解析事件,元素内容将被合并在一起,只有一个TEXT事件必须返回所有的元素内容(注释和处理指令会被忽略,实体引用必须能够展开,否则解析器将会抛出异常),如果元素内容为空,解析器将不会上报TEXT事件
空元素(比如<tag/>) 解析过程中会上报两个分离的START_TAG, END_TAG事件,无内容元素 <tag></tag>也一样
可能抛出的异常:
XmlPullParserException
IOException
版权声明:原创作品版权归作者所有,转载请注明出处,未经允许禁止私自印刷及出版。一经发现作者将依法追究其法律责任。
与我联系:QQ群539225664
0 0
- Android API学习之XmlPullParser
- android学习之读取xml文件(使用XmlPullParser)
- Android解析XML之XmlPullParser
- android xml解析之XmlPullParser
- android XmlPullParser
- AndRoid XmlPullParser
- Android学习笔记4--XmlPullParser的使用
- Android解析XML文档之XmlPullParser
- android解析xml文件之XmlPullParser
- Android中XML解析之XMLPullParser解析
- Android之XmlPullParser解析城市列表XML
- android之解析xml(XmlPullParser)
- Android使用XmlPullParser解析XML以及天气预报信息api使用
- XmlPullParser类api
- Android网络编程之三:XmlPullParser解析Xml文件
- XmlPullParser 学习笔记
- XmlPullParser 学习笔记
- android XmlPullParser解析xml
- SrollView用法
- 分析Linux内核创建一个新进程的过程
- libva中的H.264编码内存泄露问题
- 直接插入排序——java
- android开发笔记之ListView的优化+分类显示
- Android API学习之XmlPullParser
- UVA 531 Compromise
- ESP8266-SDK的3路PWM输出
- 使用socket套接字创建服务器
- 学会自己测天气------06
- VB.NET机房重构篇之数据库小问题
- iOS学习之UIView
- HDU 5044Tree 树链剖分
- 针对一个WEB请求响应,浏览器和服务器都做了什么