Android 使用XmlPullParser解析xml
这里我们假设要解析的xml文件名为:test.xml,我们将其放在assets路径中。
xml文件内容为:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<books>
<book id="1">
<name>Java编程思想</name>
<price>29.9</price>
<date>2013年11月11日</date>
</book>
<book id="2">
<name>PHP和MySQL WEB开发</name>
<price>49.9</price>
<date>2009年10月01日</date>
</book>
<book id="3">
<name>鸟哥的Linux私房菜</name>
<price>60.0</price>
<date>2010年05月30日</date>
</book>
</books>
下面的代码演示了如何去解析一个xml文件(注意assets文件流的获取方式)
private void pullXml() {
InputStream inputStream = null;
List<Book> bookList = null;
Book book = null;
try {
//初始化parser
AssetManager assetManager=this.getAssets();
inputStream = assetManager.open("test.xml");
XmlPullParser parser = Xml.newPullParser();
parser.setInput(inputStream, "utf-8"); //开始读取数据
int type = parser.getEventType();
while (type != XmlPullParser.END_DOCUMENT) {//
switch (type) {
case (XmlPullParser.START_TAG)://
if ("books".equals(parser.getName())) {
bookList = new ArrayList<Book>();
} else if ("book".equals(parser.getName())) {
book = new Book();
//获取book的id
String id = parser.getAttributeValue(0);
book.setId(Integer.parseInt(id));
} else if ("name".equals(parser.getName())) {
book.setName(parser.nextText());
} else if ("price".equals(parser.getName())) {
book.setPrice(Double.parseDouble(parser.nextText()));
} else if ("date".equals(parser.getName())) {
book.setDate(parser.nextText());
}
break;
case (XmlPullParser.END_TAG)://
if ("book".equals(parser.getName())) {
bookList.add(book);
book = null;
}
break;
}
type = parser.next();
}
} catch (Exception e) {
Toast.makeText(this, "解析出错", Toast.LENGTH_LONG).show();
e.printStackTrace();
}
Toast.makeText(this, "长度"+bookList.size(), Toast.LENGTH_LONG).show(); for (Book book1 : bookList) {
Log.d("book", book1.toString());
}
}
Android 使用XmlPullParser解析xml的更多相关文章
- Android使用pull解析xml格式的数据
dom解析:基于全文加载的解析方式 sax解析:基于事件的逐行解析方式 pull解析:同sax XmlPullParser //解析xml文件读取短信内容 ...
- Android开发学习---使用XmlPullParser解析xml文件
Android中解析XML的方式主要有三种:sax,dom和pull关于其内容可参考:http://blog.csdn.net/liuhe688/article/details/6415593 本文将 ...
- Android之Pull解析XML
一.Pull解析方法介绍 除了可以使用SAX和DOM解析XML文件,也可以使用Android内置的Pull解析器解析XML文件.Pull解析器的运行方式与SAX解析器相似.它也是事件触发的.Pull解 ...
- Android中用PULL解析XML
解析XML的方式有DOM,SAX,PULL,那为什么要在Android中使用PULL解析呢?首先来说一下PULL解析的优点,然后再说一下其他两种解析方式的缺点,答案就清晰可见啦. DOM不适合文档较大 ...
- Android使用pull解析xml
一.理论准备 Pull解析器的运行方式与 SAX 解析器相似.它提供了类似的事件,如:开始元素和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件.跟SAX不同的是, ...
- android——使用pull解析xml文件
1.persons.xml 将persons.xml文件放到src目录下.其代码如下: <?xml version='1.0' encoding='UTF-8' standalone='yes' ...
- [android] 采用pull解析xml文件
/***********2016年5月6日 更新**********************/ 知乎:Android 中有哪几种解析 xml 的类,官方推荐哪种 ? 以及它们的原理和区别? 刘吉财: ...
- Android几种解析XML方式的比较
https://blog.csdn.net/isee361820238/article/details/52371342 一.使用SAX解析XML SAX(Simple API for XML) 使用 ...
- Android中pull解析XML文件的简单使用
首先,android中解析XML文件有三种方式,dom,sax,pull 这里先讲pull,稍候会说SAX和DOM pull是一种事件驱动的xml解析方式,不需要解析整个文档,返回的值是数值型,是推荐 ...
随机推荐
- java_method_删除事务回滚
public String[] deleteEPGroup(String groupID, String groupName) { String[] operRes=new String[3]; if ...
- Maven笔记(一)
1. 坐标 Maven坐标为各种构件引入了秩序,任何一个构件都有必须明确定义自己的坐标,而一组Maven坐标是通过一些元素定义的,它们是groupId, artifactId, version, pa ...
- js 获取当前时间格式怎么转换?
toLocaleDateString() 得到的时间是 yyyy年MM月dd日 HH:ss:mm 格式的,怎么转换成yyyy-MM-dd HH:ss:mm 在js里面 仅针对这个问题来说,不需要那么大 ...
- asterisk webrtc使用SIPML5初体验
一直尝试,web呼叫xlite终端没有,主要是配置问题: 其中sip.conf配置如下: [general] context=public ; Default context for incoming ...
- Quartz Cron表达式生成器
格式: [秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 1 秒 是 0-59 , - * / 2 分 是 0 ...
- 各种排序算法及c语言实现
插入排序O(n^2) 冒泡排序 O(n^2) 选择排序 O(n^2) 快速排序 O(n log n) 堆排序 O(n log n) 归并排序 O(n log n) 希尔排序 O(n^1.25) 1.插 ...
- LM2596扩流
- Struts2的运行原理和运行与原理
Struts2 struts2的流程图 运行机制 1.客户端发送请求.通过ActionContextLoader调用FilterDispatcher(struts) 2.FilterDispatche ...
- PAT_1026 程序运行时间
问题描述: 要获得一个C语言程序的运行时间,常用的方法是调用头文件time.h,其中提供了clock()函数,可以捕捉从程序开始运行到clock()被调用时所耗费的时间.这个时间单位是clock ti ...
- samba和squid 安装
一. samba配置1. 什么是sambaSamba服务类似于windows上的共享功能,可以实现在Linux上共享文件,windows上访问,当然在Linux上也可以访问到.是一种在局域网上共享文件 ...