Android使用pull解析xml格式的数据
dom解析:基于全文加载的解析方式 sax解析:基于事件的逐行解析方式 pull解析:同sax
XmlPullParser
//解析xml文件读取短信内容
public static int restoreSms(Context context) {
ArrayList<SmsBean> arrayList = null;
SmsBean smsBean = null;
try{
//1.通过Xml获取一个XmlPullParser对象
XmlPullParser xpp = Xml.newPullParser();
//2.设置XmlPullParser对象的参数,需要解析的是哪个xml文件,设置一个文件读取流
//通过context获取一个资产管理者对象
AssetManager assets = context.getAssets();
//通过资产管理者对象能获取一个文件读取流
InputStream inputStream = assets.open("backupsms.xml");
xpp.setInput(inputStream,"utf-8");
//xpp.setInput(context.openFileInput("backupsms2.xml"), "utf-8");
//3.获取当前xml行的事件类型
int type = xpp.getEventType();
//4.判断事件类型是否是文档结束的事件类型
while(type != XmlPullParser.END_DOCUMENT){
//5.如果不是,循环遍历解析每一行的数据。解析一行后,获取下一行的事件类型
String currentTagName = xpp.getName();
//判断当前行的事件类型是开始标签还是结束标签
switch (type) {
case XmlPullParser.START_TAG:
if(currentTagName.equals("Smss")){
//如果当前标签是Smss,需要初始化一个集合
arrayList = new ArrayList<SmsBean>();
}else if(currentTagName.equals("Sms")){
smsBean = new SmsBean();
smsBean.id = Integer.valueOf(xpp.getAttributeValue(null, "id"));
}else if(currentTagName.equals("num")){
smsBean.num = xpp.nextText();
}else if(currentTagName.equals("msg")){
smsBean.msg = xpp.nextText();
}else if(currentTagName.equals("date")){
smsBean.date = xpp.nextText();
}
break;
case XmlPullParser.END_TAG:
//当前结束标签是Sms的话,一条短信数据封装完成, 可以加入list中
if(currentTagName.equals("Sms")){
arrayList.add(smsBean);
}
break;
default:
break;
}
type = xpp.next();//获取下一行的事件类型
}
return arrayList.size();
}catch (Exception e) {
e.printStackTrace();
}
return 0;
}
Android使用pull解析xml格式的数据的更多相关文章
- scrapy 解析xml格式的数据
XMLFeedSpider 主要用于 解析 xml格式的数据 创建一个scrapy 项目文件 scrapy startproject xxx 创建一个spider scrapy genspider - ...
- 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中pull解析XML文件的简单使用
首先,android中解析XML文件有三种方式,dom,sax,pull 这里先讲pull,稍候会说SAX和DOM pull是一种事件驱动的xml解析方式,不需要解析整个文档,返回的值是数值型,是推荐 ...
- 解析XML格式数据
学习解析XML格式的数据前,搭建一个简单的web服务器,在这个服务器上提供xml文本用于练习. 一.搭建Apache服务器 在Apache官网下载编译好的服务器程序,安装.对于Windows来说127 ...
- NSXMLParser解析xml格式
NSXMLParser解析xml格式的数据 用法如下: 首先,NSXMLParser必须继续NSXMLParserDelegate协议 @interface XMLHelper : NSObject ...
随机推荐
- CS5266替代AG9311设计TYPEC转HDMI带PD3.0音视频拓展坞方案
CS5266替代AG9311设计TYPEC转HDMI带PD3.0音视频拓展坞方案台湾安格AG9311是一款TYPEC转HDMI带PD3.0的音视频转换芯片,它主要用在USB TYPEC拓展坞或者USB ...
- 为什么说DI解耦
为什么说IOC/DI(控制反转/依赖注入)降低耦合 public class HomeController : Controller { private readonly IStudentRepons ...
- 《手把手教你》系列技巧篇(五十三)-java+ selenium自动化测试-上传文件-上篇(详细教程)
1.简介 在实际工作中,我们进行web自动化的时候,文件上传是很常见的操作,例如上传用户头像,上传身份证信息等.所以宏哥打算按上传文件的分类对其进行一下讲解和分享. 2.为什么selenium没有提供 ...
- css 基础 字体和文本样式
字体样式处理font-size:30px:// 设置字体大小 font-weight:700://设置粗体 font-sytle:italic; //设置文字斜体 font-family: 斜体,宋体 ...
- bind 标签
<select id="finduserbylikename" parameterType="string" resultMap="cour ...
- 微信小程序配置域名的时候提示“校验文件验证失败”
在微信小程序后台配置web-view的业务域名跟扫普通链接二维码打开小程序两项功能时, 一直提示"校验文件验证失败,请下载校验文件,上传到服务器指定的目录" 实际访问校验文件的路径 ...
- httprunner3.x全网最详细教程
一.所需环境 wiindows10以上 python3.6以上 httprunner3.1.6(最新版本) pycharm社区版 二.安装httprunner 1.卸载旧版本 卸载之前版本的命令为:p ...
- 两张Number()函数图和Boolean()函数图
- 【Java常用类】Math
Math 说明 java.lang.Math提供了一系列静态方法用于科学计算.其方法的参数和返回 值类型一般为double型. 方法 abs 绝对值 acos,asin,atan,cos,sin,ta ...
- SQL安全执行
begin tran begin -----------执行SQL开始----------------- update Audioset Name =3 -----------执行SQL结束----- ...