Pull解析XML格式数据
来源:互联网 发布:lol挂机辅助软件 编辑:程序博客网 时间:2024/05/17 04:46
使用到的XML文件为:
<?xml version="1.0" encoding="utf-8" ?> <persons> <person id = "1"> <name>张三</name> <age>23</age></person> <person id = "2"> <name>李四</name> <age>24</age></person> <person id = "3"> <name>王五</name> <age>25</age></person> </persons>
Pull解析器是一个开源的Java项目,也是Android系统内置的xml解析器,Pull解析器跟SAX很相似,他提供了类似的事件:如开始和结束元素,使用parser.next()可以进行下一个元素及触发相应的事件,跟SAX不同的是,Pull解析器产生的事件是一个数字,而非方法,因此可以使用一个switch对感兴趣的事件进行处理,当元素开始解析时,调用parser.nextText()方法可以获取下一个Text类型节点的值。
需使用第三方的jar包kxml2-2.2.2.jar解析代码为:
package com.xiaomage;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlPullParserFactory;import com.xiaomage.bean.Person;/*** * Pull解析XML * * @author xiaomage * */public class PullParserXML {/*** * 解析XML格式数据 * * @param inputStream * 输入流 * @param encode * 编码 * @return */public static List<Person> parserXML(InputStream inputStream, String encode)throws Exception {/** 存储解析的所有数据 **/List<Person> list = null;/** 存储当前解析的数据 **/Person person = null;// 创建Pull解析工厂XmlPullParserFactory xpf = XmlPullParserFactory.newInstance();// 创建Pull解析类引用XmlPullParser parser = xpf.newPullParser();// 设置输入parser.setInput(inputStream, encode);// 获取事件类型int enType = parser.getEventType();// 判断事件的类型while (enType != XmlPullParser.END_DOCUMENT) {switch (enType) {case XmlPullParser.START_DOCUMENT: // XML文件开始解析list = new ArrayList<Person>();break;case XmlPullParser.START_TAG: // XML文件标签开始解析if ("person".equals(parser.getName())) {person = new Person();// 取出里面的属性值int id = Integer.parseInt(parser.getAttributeValue(0));person.setId(id);} else if ("name".equals(parser.getName())) {// 取出节点元素的值String name = parser.nextText();person.setName(name);} else if ("age".equals(parser.getName())) {// 取出节点元素的值int age = Integer.parseInt(parser.nextText());person.setAge(age);}break;case XmlPullParser.END_TAG: // XML文件标签解析结束if ("person".equals(parser.getName())) {list.add(person);person = null;}break;}enType = parser.next();}return list;}}
0 0
- Pull解析XML格式数据
- 解析XML格式数据-Pull解析方式
- 解析XML格式数据--Pull解析
- Xml 格式数据的生成和解析和 Pull 解析 Xml 格式数据
- Android基础笔记——Pull解析XML格式数据
- android 学习笔记 Pull 解析XML 格式数据。
- 使用Pull和SAX解析XML格式数据
- Android pull解析XML数据
- Android pull解析XML数据
- pull解析省市xml数据
- 解析XML格式数据的方式——Pull解析、SAX解析
- 【Android】pull解析xml文件+将数据存储为xml格式,并保存在内存里
- Android 通过GET请求利用pull解析器获取XML格式数据在ListView控件显示
- 解析XML格式数据
- 解析XML格式数据
- 解析XML格式数据
- 解析XML格式数据
- 解析XML格式数据
- twisted入门教程之二:异步编程初探与reactor模式
- leetcode count and say
- HTTP Charset
- javascript 打印函数名称和被引用的函数
- java并发包的CAS操作
- Pull解析XML格式数据
- 屏幕解锁
- WebServices测试之一-----UFT测试WEBSERVICES
- LCOJ - Intersection of Two Linked Lists
- 递归按层遍历二叉树算法
- twisted入门教程之三:初步认识Twisted
- 公差等级
- Android中ListView之ArrayAdapter的使用
- twisted入门教程之四:由Twisted支持的诗歌客户端