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解析方式,不需要解析整个文档,返回的值是数值型,是推荐 ...
随机推荐
- Apache Commons Beanutils对象属性批量复制(pseudo-singleton)
Apache Commons Beanutils为开源软件,可在Apache官网http://commons.apache.org/proper/commons-beanutils/download_ ...
- day-1
/* 倒计时就要结束了 在机房的最后一个晚上 恩 就要结束了 上午考试 下午背板 找了几个原题敲了敲 晚上zjk老妈送的饭 撑死死死死了 好吃23333 吃饭完和zjk在机房门口楼梯上聊了一会 恩 以 ...
- ImageView的属性android:scaleType
ImageView的属性android:scaleType,即 ImageView.setScaleType(ImageView.ScaleType). android:scaleType是控制图片如 ...
- HDU-1060(简单数学)
Leftmost Digit Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) P ...
- Unity3D 之NGUI各种脚本及应用
这里来介绍一下NGUI的各种脚本的作用,以便以后需要某种效果的时候,去添加相应的脚本去实现效果 UIButton --> 按钮脚本 UIPanel --> 面板脚本 UIToggle ...
- MVC中实现部分内容异步加载
MVC中实现部分内容异步加载 action中定义一个得到结果集的方法 public ActionResult GetItemTree(string title, int itemid, int? pa ...
- MVC LINQ中用封装的TSQL通用更新方法
把TSQL拿出来,做了一个封装,适用的所有表,更新有两种,普通更新和记数更新 看代码:这两个方法是写在DAL里的数据操作基类里的,只有它的子类可以用它,所以用protected做为限制 /// < ...
- Ubuntu 12.04安装PPTP
1.安装软件 sudo apt-get install pptpd ufw 2.编辑/etc/ppp/pptpd-options 找到 refuse-pap refuse-chap refuse-ms ...
- 堆排序算法(C#实现)
在软件设计相关领域,“堆(Heap)”的概念主要涉及到两个方面: 一种是数据结构,逻辑上是一颗完全二叉树,存储上是一个数组对象(二叉堆). 另一种是垃圾收集存储区,是软件系统可以编程的内存区域. 本文 ...
- 如何诊断oracle数据库运行缓慢或hang住的问题
为了诊断oracle运行缓慢的问题首先要决定收集哪些论断信息,可以采取下面的诊断方法:1.数据库运行缓慢这个问题是常见还是在特定时间出现如果数据库运行缓慢是一个常见的问题那么可以在问题出现的时候收集这 ...