解析XML格式数据的三种方法Pull,Sax,Dom

本文介绍了XML解析的三种方法——DOM、SAX和Pull解析的优缺点。DOM解析易于使用,但内存占用高,不适合大文件;SAX解析效率高,资源占用少,但数据不持久;Pull解析结合了两者优点,但修改文档不便。通过代码示例展示了每种解析方式的使用方法,供开发者选择合适的解析策略。
摘要由CSDN通过智能技术生成

既然要介绍这三种解析方法那么当然要说一下为什么用他们,用他们有什么优点和缺点。

首先说一下Dom解析:

优点:易用性强,使用DOM时,将把所有的XML文档信息都存于内存中,并且遍历简单,支持XPath,增强了易用性。

缺点:效率低,解析速度慢,内存占用量过高,对于大文件来说几乎不可能使用。另外效率低还表现在大量的消耗时间,因为使用DOM进行解析时,将为文档的每个element、attribute、processing-instrUCtion和comment都创建一个对象,这样在DOM机制中所运用的大量对象的创建和销毁无疑会影响其效率。

接着说Sax解析:

优点:不用事先调入整个文档,占用资源少。尤其在嵌入式环境,如Android,极力推荐采用SAX进行解析。

缺点:不像DOM一样将文档树长期留驻在内存,数据不是长久的。事件过后,若没保存数据,那么数据就会丢失。

然后Pull解析:

优点:不必自己写事件逻辑,并且也不需要把文档读到内存。个人感觉优于以上两种解析方式。

缺点:对文档修改比较困难。

下面用代码来演示一下用法:

首先添加一下XML格式内容:


<apps>
	<app>
		<id>1</id>
		<name>Google Map</name>
		<version>1.0</version>
		</app>
		<app>
		<id>2</id>
		<name>Chrome</name>
		<version>2.1</version>
		</app>
		<app>
		<id>3</id>
		<name>Google</name>
		<version>2.3</version>
	</app>
</apps>

Pull解析:

运行结果如下:

主要代码如下:

 private void parseXMLWithPull(String responseData) {
        try{
            XmlPullParserFactory factory = XmlPullParserFactory
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值