SAX和DOM解析的区别
XML和JSon是ios解析文件的两种形式, 两种方法各有千秋.
1>. XML分为SAX和DOM两种方式
SAX是按顺序逐行读取文件, 查找到符合条件的内容时就会停止, 而DOM是讲内容一次性全部读取到内存中建立一个树状结构, 所以DOM不适合读取大型文件.
DOM的弱点就是SAX的优点.SAX不必将所有内容添加到内存中, 但是他对文件按顺序读取一遍, 所以就导致了他不能对文件随意读取和修改,而DOM的树状结构可以对文件随意读取和修改.
| SAX | DOM |
| 按顺序(逐行)读取文件 | 一次性将文件读入内存, 并建立一个树状结构 |
| 对文件只读入一次, 不能对文件随意的读取 | 可以对树状结构中的数据进行任意的存取, 并且没有次数限制 |
| 只能对文件进行读取, 不能修改 | 可对文件进行修改 |
| 开发比较困难, 要自己写事件控制器 | 易于开发 |
上图中描述了SAX和DOM的不同。
SAX适于处理下面的问题:
1、对大型文件进行处理;
2、只需要文件夹的部分内容,或者只需从文件中得到特定信息。
3、想建立自己的对象模型的时候。
DOM适于处理下面的问题:
1、需要对文件进行修改;
2、需要随机对文件进行存取
SAX和DOM解析的区别的更多相关文章
- xml的SAX解析和dom解析的区别
一,区别 DOM解析 SAX解析 原理: 一次性加载xml文档,不适合大容量的文件读取 原理: 加载一点,读取一点,处理一点.适合大容量文件的读取 DOM解析可以任意进行增删改成 SAX解析只能读取 ...
- SAX与DOM解析XML的区别
解析xml有四种方法:DOM,SAX,DOM4j,JDOM. 我们主要学了两种:DOM和SAX. DOM适于解析比较简单的XML而SAX则适于解析较复杂的XML文件.各有各的好. DO ...
- DOM的概念和简单应用:使用DOM解析XML数据
概念:DOM是Document Object Model的简称,即文档数据模型. Oracle公司提供了JAXP(Java API for XML Processing)来解析XML.JAXP会把XM ...
- XML之DOM解析文档 Day24
TestDom.java package com.sxt.dom; import java.io.File; import java.io.IOException; import javax.xml. ...
- DOM解析和SAX解析的区别
DOM解析和SAX解析的区别 博客分类: XML DOM SAX DOM解析和SAX解析的区别 No 区 别 DOM解析 SAX解析 1 操作 将所有文件读取到内存中形成DOM树,如果文件量过大,则 ...
- dom解析和sax解析的区别及优缺点
dom解析一开始就将文档所有内容装入内存,每个元素(标签)都作为一个element对象存储,形成对象树,缺点是对内存占用大,不能解析数据量很大的文档:优点是方便进行crud操作. sax解析,逐行解析 ...
- 经典面试题:一张表区别DOM解析和SAX解析XML
============DOM解析 vs ...
- Android系列--DOM、SAX、Pull解析XML
您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态. 如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦 如果您对文章内 ...
- SAX解析与DOM解析
SAX解析实例:http://www.iteye.com/topic/763895 Java Sax解析是按照xml文件的顺序一步一步的来解析,在解析xml文件之前,我们要先了解xml文件的节点的种类 ...
随机推荐
- jQuery瀑布流插件——jQuery.Waterfall
插件--jQuery.Waterfall 思路: 其实只要了解了整个流程,要实现这个插件也不难,大家都玩过俄罗斯方块吧,原理差不多,找到合适的地方叠上去就好了,在这里,每个块的宽度是必需给定的,然后计 ...
- SQL 语句调优 where 条件 数据类型 临时表 索引
基本原则 避免全表扫描 建立索引 尽量避免向客户端返回大数据量,若数据量过大,应该考虑相应需求是否合理 尽量避免大事务操作,提高系统并发能力 使用基于游标的方法或临时表方法之前,应先寻找基于集的解决方 ...
- jmx配置
# ----- Execute The Requested Command ----------------------------------------- # ----- JMX Config S ...
- Nginx与Lua利用fpm打成rpm包
1.下载相关软件 需要软件有:Nginx,LuaJIT,ngx_devel_kit,ngx_lua等安装文件 安装Lua或者LuaJIT都是可以的,但是出于效率的考虑,推荐安装LuaJITshell& ...
- Jquery页面初始化的4种方式
<script src="Scripts/jquery-1.8.2.min.js"></script> <script type="text ...
- windows系统中WIN键的快捷组合
1.WIN+E 打开我的电脑(计算机) 2.WIN+D 返回桌面 当你在用聊天工具与朋友聊天时,旁边突然出现某位小伙伴,快速按下WIN+D返回到桌面就可以很好的保护你的聊天内容啦! 3 ...
- 微信小程序-设备
网络状态: wx.getNetworkType(OBJECT) 获取网络类型. OBJECT参数说明: wx.getNetworkType({ success: function(res) { var ...
- VB默认属性、动态数组、Range对象的默认属性的一点不成熟的想法
1.默认属性 VB6.0有默认属性的特性.当没有给对象指定具体的属性时,"默认属性"是VB6.0将使用的属性.在某些情形下,省略常用属性名,使代码更为精简. 因为CommandBu ...
- Sprint(第十天11.23)
- 《与小卡特一起学Python》Code4 GUI easygui的使用
EasyGui是基于TKinter的,所以可以跨平台使用. 使用方法很简单,下载之后解压把easygui.py放到python安装目录下的lib/site-packages/下面即可 import e ...