1.Dom解析:

Dom解析的时候,首先要把整个文件读取完毕,装载到内存中。然后进行解析,在解析的过程中,你可以直接获取某个节点,进行操作,也可以获取根节点然后进行遍历操作,得到所有的节点。

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

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

下图是在进行Dom解析时Node节点的类型,共有12种,以下是前三种。

2.Sax解析

Sax解析时不像DOM那样建立一个完整的文档树,而是在读取文档时激活一系列事件,这些事件被推给事件处理器,然后由事件处理器提供对文档内容的访问。

优点:内存消耗小,因为整个文档无需一次加载到内存中,这使Sax解析器可以解析大于系统内存的文档。

缺点:必须实现多个时间处理程序以便能够处理所有到来的事件,同时你还必须在应用程序代码中维护这个事件状态,因为Sax解析器不能交流元信息,所以你必须跟踪解析器处在文档层次的哪个位置。如此一来,你的文档越复杂,你的应用逻辑也越复杂。

3.区别

①读取方式:Dom需要把所有的XML文档信息都存于内存中。

Sax无需一次把xml文件加载到内存中,采用的是事件驱动的操作。

②应用场景:Dom几乎不可以使用于大的文件

Sax则视情况而定

③获取节点:Dom可以直接获取

document.getElementById(elementId)

document.getElementsByTagName(tagname)

document.getElementsByTagNameNS(namespaceURI, localName)

Sax需要处理所有到来的事

Dom解析与Sax解析的区别相关推荐

  1. DOM解析和SAX解析的区别

    DOM解析和SAX解析的区别 博客分类: XML DOM SAX  DOM解析和SAX解析的区别 No 区 别 DOM解析 SAX解析 1 操作 将所有文件读取到内存中形成DOM树,如果文件量过大,则 ...

  2. XML的SAX解析以及DOM解析和SAX解析区别

    前言: XML解析工具 DOM解析原理:1)JAXP (oracle-Sun公司官方)2)JDOM工具(非官方)3)Dom4J工具(非官方)三大框架(默认读取xml的工具就是Dom4j)....... ...

  3. Java解析XML(DOM解析和SAX解析)

    前言:在程序中访问和操作XML文件一般有两种模型:DOM(文档对象模型)和流模型:在本篇文章中分别对应DOM解析和SAX解析. 目录 1 .DOM解析与SAX解析的相关知识点 1.1 DOM 1.2 ...

  4. UI一揽子计划 15 (XML的解析方式 (SAX解析/ DOM解析) 、JSON 解析)

    一. XML的SAX解析 1).SAX解析   1. 遵守协议      @interfaceRootViewController ()<NSXMLParserDelegate> 2. 声 ...

  5. JavaWeb-05 XML基础(Dom解析和Sax解析)

    JavaWeb-05 JavaWeb-XML基础(Dom解析和Sax解析) 一.XML的概述(了解) eXtensible Markup Language 可扩展标记语言 宗旨是传输数据,而非显示数据 ...

  6. XML的概述,.Dom4解析和SAX解析

    1.什么是XML XML 指可扩展标记语言(EXtensible Markup Language) html(hyper text markup langauge) XML 是一种标记语言,很类似 H ...

  7. Android[中级教程]第六章 XML解析之SAX解析器

    Android[中级教程]第六章 XML解析之SAX解析器 分类: Android中级2011-10-06 01:52 125人阅读 评论(1) 收藏 举报 接上一章,这一章我们就来学习SAX解析器, ...

  8. dom解析和sax解析的区别及优缺点

    dom解析一开始就将文档所有内容装入内存,每个元素(标签)都作为一个element对象存储,形成对象树,缺点是对内存占用大,不能解析数据量很大的文档:优点是方便进行crud操作. sax解析,逐行解析 ...

  9. XML解析---DOM解析和SAX解析

    XML是一种通用的数据交换格式,它的平台无关性.语言无关性.系统无关性.给数据集成与交互带来了极大的方便.XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已. 对于XML的解析,还有 ...

最新文章

  1. 英伟达的雄心:成为AI时代的计算平台
  2. 解决ubuntu开机进入grub界面的问题
  3. c语言考试长沙理工大学,2013年长沙理工大学C语言考试试卷A.doc
  4. Redis 学习笔记-NoSQL数据库 常用五大数据类型 Redis配置文件介绍 Redis的发布和订阅 Redis_事务_锁机制_秒杀 Redis应用问题解决 分布式锁
  5. codeblock不能调试
  6. 看图了解RocksDB
  7. java接口自动化(五) - 企业级代码管理工具Git的配置
  8. js文件中可以写html吗,js代码写在HTML正常,分离成js文件再在HTML中引用不起作用...
  9. 关于Sound Blaster Cinema 6找不到音频设备 史上最简单的解决方案
  10. mysql 定时任务 日志_mysql定时备份任务
  11. AI论文中 ACKNOWLEDGMENT的写法
  12. phpstorm database 使用
  13. 【cs224n学习作业】Assignment 1 - Exploring Word Vectors
  14. 饮用水中的氟化物超标怎么去除、除氟工艺介绍
  15. PostgreSQL执行SQL文件
  16. Adobe发布对影片编辑的重大更新 涉及AI、VR、动态图像、直播动画及音频
  17. 分享五个可以自助小程序搭建的网站
  18. 小程序之战,泡沫之后鹿死谁手?
  19. 008-企业网站纽曼官网实现
  20. 蓄电池内阻测试仪分析软件,蓄电池内阻测试仪的产品特点与参数

热门文章

  1. 数据库基础SQL语句
  2. 每日感悟-华杉讲解论文-2022/1/26
  3. arcgis海图相关
  4. 二十一、商城 - 商品录入-KindEditor 编辑器(9)
  5. 工作流——启动事件(Start Event)
  6. C#枚举enum定义使用
  7. 悼念!蒙特卡洛Metropolis算法贡献者之一Arianna Rosenbluth逝世
  8. Intracom Telecom助力CSP,WiFi与NFV的完美邂逅
  9. Python+Behave+Allure Web UI自动化测试
  10. WPF强制刷新UI界面