位置: 编程技术 - 正文

在Android中解析XML(安卓解析工具)

编辑:rootadmin

推荐整理分享在Android中解析XML(安卓解析工具),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android解析包时出现问题,安卓解析xml的几种方式,安卓解析xml的几种方式,安卓解析程序包,android解析包时出现问题,安卓解析,安卓解析xml的几种方式,android解析xml,内容如对您有帮助,希望把文章链接给更多的朋友!

在Android中解析XML

知识点概述:

1.DOM解析XML

2.SAX解析XML

3.Pull解析XML

知识点详述:

前序:XML是可扩展性标记语言,可以自己定义标签.在android中处理xml数据很常见,通常在不同平台传输数据的时候,就会用到xml,xml是与平台无关的特性,被广泛运用于数据通信中.android中解析xml数据通常有三种方式:DOM,SAX,PULL.

1.DOM解析XML

DOM是Document Object Model的缩写,即文档对象模型.DOM解析器是通过将XML文档解析成树状模型并将其放入内存来完成解析工作的,而后对文档的操作都是在这个树状模型上完成.这个在内存中的文档是实际文档大小的几倍.好处是结构清晰,操作方便,坏处是耗费系统资源.要使用DOM方式来解析xml,需引入下面两个包:

import javax.xml.parsers.*;//包含DOM解析器和SAX解析器的具体实现

import org.w3c.dom.*;//定义了W3C制定的DOM接口

具体思路:

*首先创建一个DocumentBuilderFactory实例,

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

*利用DocumentBuilderFactory实例创建DocumentBuilder,

DocumentBuilder builder = factory.newDocumentBuilder();

*然后加载xml文档(Document),

Document doc = builder.parse(getAssets().open("xml/student.xml"));

*然后获取文档的根节点(Element),

Element root = doc.getDocumentElement();

*然后获取根节点中所有子节点的列表(NodeList),

NodeList nodeList = root.getElementsByTagName("student");

*然后再获取子节点列表中需获取的节点.

2.SAX解析XML

SAX是Simple API for XML的缩写,SAX是基于事件驱动的,在用SAX解析xml文档时候,在读取到文档开始和结束标签时候就会回调一个事件,在读取到其它节点与内容时也会回调一个事件.事件源是org.xml.sax包中的XMLReader,它通过parser()方法来解析XML文档,并产生事件.事件处理器是DefaultHandler,DefaultHandler的一些主要事件回调方法如下:

与DOM比较而言,SAX是一种轻量型的方法.当需要一个速度快的解析器并且希望最大限度的减少应用程序的内存占用时,通常可以使用SAX解析.

具体思路是:

*创建SAXParserFactory对象

在Android中解析XML(安卓解析工具)

SAXParserFactory spf = SAXParserFactory.newInstance();

*根据SAXParserFactory.newSAXParser()方法返回一个SAXParser解析器

SAXParser sp = spf.newSAXParser();

*根据SAXParser解析器获取事件源对象XMLReader

XMLReader reader = sp.getXMLReader();

*实例化一个DefaultHandler对象

StudentHandler handler = new StudentHandler(students);

*连接事件源对象XMLReader到事件处理DefaultHander

reader.setContentHandler(handler);

*调用XMLReader的parse方法从输入源获取到xml数据

*通过DefaultHandler返回我们需要的数据集合

注:重点在于DefaultHandler对象中对每一个元素节点,属性,文本内容,文档内容的处理.

3.Pull解析XML SDK提供的xml标准解析方式

XmlPullParser解析器的运行方式与SAX解析器相&#;.它提供了类&#;的事件(开始元素和结束元素),但需要使用parser.next()方法来提取它们.事件将作为数&#;代码被发送,因此可以根据不同的事件代码&#;来进行不同的处理.通过parser.getEventType()方法来取得事件的代码&#;(如XmlPullParser.START_DOCUMENT、XmlPullParser.START_TAG、XmlPullParser.END_TAG).

当处于某个元素时可以调用XmlPullParser的getAttributte()方法来获取属性的&#;,也可调用它的nextText()获取下一个文本节点的&#;。

具体思路:

*构建XmlPullParser解析器

XmlPullParser parser = Xml.newPullParser();

*将xml文档注册到解析器中

parser.setInput();

*触发事件,获得事件类型码

int event = parser.getEventType();

*针对事件进行具体分析

"name".equals(parser.getName());//判断开始标签元素是否是name

parser.getAttributeValue(0);//得到标签的属性&#;

parser.nextText();//获取下一个Text节点的&#;

*触发并进入下一个事件

event = parser.next();

Pull解析和Sax解析不一样的地方有(1)pull读取xml文件后触发相应的事件调用方法返回的是数字(2)pull可以在程序中控制想解析到哪里就可以停止解析。

优点:不是一次加载,中途可以停止

Eclipse ctrl+shift+r 总所周知,Eclipsectrlshiftr可以查找你想要的文件,并且你可以通过preference设置,将你不想查询出来的信息过滤。相信大家和我一样,都遇到一个问题,

Android基础入门教程——2.2.2 RelativeLayout(相对布局) Android基础入门教程——2.2.2RelativeLayout(相对布局)标签(空格分隔):Android基础入门教程本节引言:在上一节中我们对LinearLayout进行了详细的解析,Linear

Android 图片轮番 继承ViewGroup实现 可以直接使用 代码有注释应该都能看的懂上代码:importjava.util.ArrayList;importandroid.content.Context;importandroid.graphics.Bitmap;importandroid.os.Handler;importandroid.os.Message;importandroid.ut

标签: 安卓解析工具

本文链接地址:https://www.jiuchutong.com/biancheng/380951.html 转载请保留说明!

上一篇:Java项目的*.java 文件打开后注释乱码问题解决办法。(java项目的命名规则)

下一篇:Eclipse ctrl+shift+r

  • 企业签订技术培训合同是否需要缴纳印花税?
  • 施工企业的临时设施,属于企业的固定资产
  • 进口设备退税如何账务处理?
  • 行政事业性收据发票记帐
  • 个税返还什么时候到账
  • 主营业务成本大于生产成本
  • 未入账分期金额是什么意思
  • 汇算清缴所得税是什么意思
  • 弥补以前年度亏损从哪里取数
  • 现金支票 差旅费
  • 离职未收回货款要我承担
  • 个税返还交所得税吗
  • 广告费用的增值税税率
  • 非公司私营企业属于什么类型
  • 企业购买银行理财会亏吗
  • 印花税零申报怎么填样本
  • 案例分析两个分公司转资金怎么做账?
  • 母公司从子公司借款有何风险
  • 分期付款的车怎么做分录
  • 土地契税税率怎么计算
  • 公司用自己的设备投资怎么交税呢怎么做账
  • 个税退手续费要多久到账
  • windows10如何开启vt
  • 幼儿园资金收支管理财务制度
  • 什么是要约的撤销
  • windows10 电脑
  • 金融企业贷款逾期怎么办
  • 路由器晚上关了,早上再开信号会好吗?
  • 四个常见html网页乱码问题及解决办法
  • 个人独资企业怎么做账
  • 法定盈余公积金达到注册资本的多少时不再提取
  • 像指纹一样的图形
  • 小企业会计准则财务报表至少包括
  • 商业企业促销费包括哪些
  • 租出固定资产的处理步骤
  • 建信信托介绍
  • js javascript
  • opencvcuda
  • 季度盈利弥补亏损利润表
  • 提供加工劳务怎么开票
  • 增值税发票名称可以写个人吗
  • 其他应收账款怎么做预算会计分录
  • 公司购买电脑怎么入账科目
  • day10-Tomcat02
  • 外企研发中心
  • 资产负债表中的货币资金怎么算
  • 微信支付宝等改观了人们的生活方式修改病句
  • 营改增方案
  • 库存现金挂账多久
  • sqlserver数据库备份
  • 劳务费计入工资薪金总额吗
  • 烟叶税计算时价格怎么算
  • 员工误餐费是否缴纳个人所得税
  • 一般纳税人增值税减免政策2023
  • 减免的企业所得税怎么做账
  • 固定资产净残值可以为0吗
  • 已执行新金融准则 本期金额
  • 工程结算编制收费标准
  • 行程单入账多久钱能到账
  • 无形资产的有效期限与法定保护期限相等
  • 专用发票不抵扣联可以当普票用吗?
  • 收到加盟费怎么开票入账
  • 应付职工薪酬要设二级科目吗
  • 备品和备件的定义
  • 代扣代缴的增值税为什么可以抵扣
  • 快启动u盘pe怎么安装系统详细图文教程
  • win8系统笔记本怎么恢复出厂设置
  • xp系统浏览器收藏夹文件位置
  • windows2003域控制器
  • CentOS中httpd源代码安装与测试步骤分享
  • adb.exe是什么程序
  • linux telnet用法
  • windows 打开文件命令
  • 使用jquery实现的项目
  • jquery animate源码
  • QOpenGLWindow 、QOpenGLWidget 和 QPainter混合渲染方法初探
  • android内存占用分析
  • jquery获取table指定的行列
  • android adt
  • 预拍摄功能相机
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设