Pull解析
来源:互联网 发布:蚁群算法应用 编辑:程序博客网 时间:2024/05/17 02:41
Pull解析是Android中解析XMl文件的方法。他集合Dom解析以及Sax解析的优点,既可以控制何时循环结束,也不会占用很大的内存。
下面是Pull解析的简单使用:
package com.example.internetdemo;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlPullParserException;import org.xmlpull.v1.XmlPullParserFactory;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;public class PullParserDemo {public static void pullParse(InputStream in) throws XmlPullParserException, IOException {XmlPullParserFactory xpf = XmlPullParserFactory.newInstance();XmlPullParser parser = xpf.newPullParser();parser.setInput(in,"UTF-8");//xml的编码集,一般为UTF-8ArrayList<Person> persons = null;//type-->读取到的内容的状态:开始文档、开始标签等int type = parser.getEventType();//开始文档:XmlPullParser.START_DOCUMENT//开始标签:XmlPullParser.START_TAG//结束标签:XmlPullParser.EDN_TAG//结束文档:XmlPullParser.END_DOCUMENT//文本内容:通过标签头之后获取Person p = null;while (type!=XmlPullParser.END_DOCUMENT) {//结束文档的时候结束循环switch (type) {case XmlPullParser.START_DOCUMENT://创建存放xml文件属性的集合persons = new ArrayList<Person>();break;case XmlPullParser.START_TAG://获取标签名String tagName = parser.getName();//新建person对象p = new Person();if ("person".equals(tagName)&&parser.getAttributeCount()==1/*属性为1*/) {//设置idp.setId(parser.getAttributeValue(0));}else if ("name".equals(tagName)) {//设置namep.setName(parser.nextText()/*起始标签和结束标签之间的字符串*/);}else if ("age".equals(tagName)) {//设置agep.setAge(parser.nextText());}break;case XmlPullParser.END_TAG:String endTagName = parser.getName();if ("person".equals(endTagName)) {//如果对象不为空,将其添加到集合中,并将其置空if (p != null) {persons.add(p);p = null;}}break;}//进入下一个状态type = parser.next();}}}
0 0
- pull解析
- pull解析
- pull解析
- Pull 解析
- pull解析
- pull解析
- Pull解析
- pull解析
- PULL解析
- pull解析
- Pull解析
- Pull解析
- Pull解析
- PULL解析
- pull解析
- pull解析
- PULL解析
- Pull解析
- NGUI中UICamera的EventType详解
- Programming In Scala笔记-第十一章、Scala中的类继承关系
- 【考研日记】:快乐学习法
- Java开发中的23种设计模式详解
- 3D全景!这么牛!!
- Pull解析
- 使用Netty搭建的服务端,主要用于文件处理和json处理
- AutoHotKey 的使用 —— 使用键盘调节 windows 声音
- Multiload-ng
- Java虚拟机的结构(未完待续)
- linux替换cudnn版本以及链接库碰到的问题
- String包装类应用之 获取两字符串的最大相同子串
- ast.QuerySyntaxException: *** is not mapped
- myeclipse2016stable1.0下载,破解软件下载以及卸载后重装