[android] 采用pull解析xml文件
/***********2016年5月6日 更新**********************/
知乎:Android 中有哪几种解析 xml 的类,官方推荐哪种 ? 以及它们的原理和区别?
刘吉财:
主要有dom,sax和pull三种,不过貌似官方推荐使用pull,这个不是很了解,但和sax类似,都是利用事件驱动的,根据不同的标签来处理事件。dom的话是把xml文件用树的形式,在解析过程中将整棵树保存到内存中,效率相对于sax来说比较低。所以建议使用sax啦
/*************************************************/
新建一个天气信息的xml文件,新建一个业务包,包里面一个业务类,暴露获取天气的方法,新建一个domain包,包里面一个天气的业务bean,业务bean里面根据xml的节点建立成员属性,生成get set方法,生成有参和无参的构造函数,在业务方法里面解析xml文件塞到业务集合里面。
Javaweb里面解析xml,DOM解析,一次性加载到内存里面,生成树状的结构,消耗的内存大,SAX解析,基于事件的解析,速度快不能倒退,android下是pull解析,类似SAX解析
获取XmlPullParser对象,通过Xml.newPullParser方法,
调用XmlPullParser对象的setInput(inputSTream,inputEncoding),文件输入流,编码
调用XmlPullParser对象的getEventType()获得事件类型,有Xml.START_DOCUMENt ,Xml.END_DOCUMENT,Xml.START_TAG,Xml.END_TAG
通过循环不停的取
While(类型不等于END_DOCUMENT){
}
在这个循环里面switch进行判断,当START_TAG的时候,调用XmlPullParser对象的getName()方法获取节点的名称,等于一个值得时候,创建List集合,等于一个值得时候创建业务对象,调用XmlPullParser对象的getAttributeValue()可以获取属性,调用nextText()可以获取节点内容,当END_TAG的时候业务对象add放入集合,
当Xml文件在类路径下,可以通过类加载器直接加载xml文件,例如 MainActivity.class.getClassloader().getResourceAsStream(文件名),为了好看点,可以在业务bean里面生成toString()方法,可以方便打印查看,
[android] 采用pull解析xml文件的更多相关文章
- android——使用pull解析xml文件
1.persons.xml 将persons.xml文件放到src目录下.其代码如下: <?xml version='1.0' encoding='UTF-8' standalone='yes' ...
- Android中pull解析XML文件的简单使用
首先,android中解析XML文件有三种方式,dom,sax,pull 这里先讲pull,稍候会说SAX和DOM pull是一种事件驱动的xml解析方式,不需要解析整个文档,返回的值是数值型,是推荐 ...
- Andorid- 反序列化,采用pull解析 xml 文件
MainActivity.java 主入口,通过获得 XML文件 ,然后将解析后的文件标签以及文本内容拼接到 StringBuffer中,最后显示在TextView上 package com.exam ...
- Android -- 创建XML文件对象及其序列化, pull解析XML文件
1. 创建XML文件对象及其序列化 示例代码:(模拟以xml格式备份短信到SD卡) SmsInfo.java, bean对象 /** * 短信的业务bean * @author Administrat ...
- 使用PULL解析XML文件
转载博文1:http://blog.csdn.net/wangkuifeng0118/article/details/7313241 XmlPull和Sax类似,是基于流(stream)操作文件,然后 ...
- 使用XML序列化器生成XML文件和利用pull解析XML文件
首先,指定XML格式,我指定的XML格式如下: <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <message&g ...
- pull解析xml文件
pull解析xml文件 先自己写一个xml文件,存一些天气信息 拿到xml文件 InputStream is = getClassLoader().getResourceAsStream(" ...
- Android pull解析xml文件
本文介绍android中使用pull来解析xml文件 先自己写一个xml文件,存一些天气信息 <?xml version="1.0" encoding="UTF-8 ...
- Android SAX、DOM、Pull解析xml文件剖析与案例讲解
XML介绍 XML(Extensible Markup Language) 即可扩展标记语言,与HTML一样,都是SGML(Standard Generalized Markup Language,标 ...
随机推荐
- CS61A Lecture3 Note
本次lec主讲控制流 本文档只列一些py控制流与C不同的地方 print的功能不同 可以print出来None这种东西 重点讲了函数运行机制,我的理解是这样的,在调用函数之前,def会产生一个glo ...
- Windows 10 IoT Core 17083 for Insider 版本更新
1月26日,微软发布了Windows 10 IoT Core 17083 for Insider版本更新,概括如下: 新特性:1. General bug fixes2. Enabled Flash ...
- Java编程实现多线程TCP服务器完整实例
Socket ·功能:TCP客户端套接字 ·构造方法: Socket(InetAddress address, int port) 创建一个流套接字并将其连接到指定 IP 地址的指定端口号 · ...
- 迈向高阶:优秀Android程序员必知必会的网络基础
1.前言 网络通信一直是Android项目里比较重要的一个模块,Android开源项目上出现过很多优秀的网络框架,从一开始只是一些对HttpClient和HttpUrlConnection简易封装使用 ...
- 吴恩达机器学习笔记45-使用支持向量机(Using A SVM)
本篇我们讨论如何运行或者运用SVM. 在高斯核函数之外我们还有其他一些选择,如:多项式核函数(Polynomial Kernel)字符串核函数(String kernel)卡方核函数( chi-squ ...
- 第五节:详细讲解Java中的接口与继承
前言 大家好,给大家带来详细讲解Java中的接口与继承的概述,希望你们喜欢 什么是接口(interface) 接口中的方法都是抽象方法,public权限,全是抽象函数,不能生成对象 interface ...
- ML - 特征选择
1. 决策树中的特征选择 分类决策树是一种描述对实例进行分类的树型结构,决策树学习本质上就是从训练数据集中归纳出一组分类规则,而二叉决策树类似于if-else规则.决策树的构建也是非常的简单,首先依据 ...
- MapReduce中的Join
一. MR中的join的两种方式: 1.reduce side join(面试题) reduce side join是一种最简单的join方式,其主要思想如下: 在map阶段,map函数同时读取两个文 ...
- Spring框架(1)---Spring入门
Spring入门 为了能更好的理解先讲一些有的没的的东西: 什么是Spring Spring是分层的JavaSE/EE full-stack(一站式) 轻量级开源框架 分层 SUN提供的EE的三层结构 ...
- 支付宝客户端架构解析:Android 容器化框架初探
摘要: 本文将介绍支付宝 Android 容器化框架设计的基本思路. 1. 前言 由本章节开始,我们将从支付宝客户端的架构设计方案入手,细分拆解客户端在“容器化框架设计”.“网络优化”.“性能启动优化 ...