sax, dom, jdom技术对比
---- sax, dom, jdom技术的优缺点比较
SAX 之所以被叫做"简单"应用程序接口,是因为SAX分析器只做了一些简单的工作,大部分工作还要由应用程序自己去做。也就是说,SAX分析器在实现时,它只 是顺序地检查XML文档中的字节流,判断当前字节是XML语法中的哪一部分,检查是否符合XML语法并触发相应的事件。对于事件处理函数本身,要由应用程 序自己来实现。同DOM分析器相比,SAX分析器对XML文档的处理缺乏一定的灵活性,然而,对于那些只需要访问XML文档中的数据而不对文档进行更改的 应用程序来说,SAX分析器的效率则更高。由于SAX分析器实现简单,对内存要求比较低,因此实现效率比较高同时具有广泛的应用价值。
DOM 分析器通过对XML文档的分析,把整个XML文档以一棵DOM树的形式存放在内存中,应用程序可以随时对DOM树中的任何一个部分进行访问与操作,也就是 说,通过DOM树,应用程序可以对XML文档进行随机访问。这种访问方式给应用程序的开发带来了很大的灵活性,它可以任意地控制整个XML文档中的内容。 然而,由于DOM分析器把整个XML文档转化成DOM树放在了内存中,因此,当XML文档比较大或者文档结构比较复杂时,对内存的需求就比较高。而且,对 于结构复杂的树的遍历也是一项比较耗时的操作。所以,DOM分析器对机器性能的要求比较高,实现效率不十分理想。不过,由于DOM分析器的树结构的思想与 XML文档的结构相吻合,而且,通过DOM树机制很容实现随机访问。因此DOM分析器也有较为广泛的使用价值。
JDOM是处理XML的纯JAVA API。使用具体类而不用接口,既要生成大多数节点类型的实例,只要将一两个变元传入即可。是目前表现优秀的处理XML的JAVA API。其优缺点如表1所示:
表2:SAX、DOM及JDOM技术优缺点
SAX
优点:①无需将整个文档加载到内存,因而内存消耗少
②推模型允许注册多个ContentHandler
缺点:①没有内置的文档导航支持
②不能够随机访问XML文档
③不支持在原地修改XML
④不支持名字空间作用域
最适合于:只从XML读取数据的应用程(不可用于操作或修改XML文档)
DOM
优点:①易于使用
②丰富的API集合,可用于轻松地导航
③整棵树加载到内存,允许对XML文档进行随机访问
缺点:①整个XML文档必须一次解析完
②将整棵树加载到内存成本较高
③一般的DOM节点对于必须为所有节点创建对象的对象类型绑定不太理想
最适合于:需要修改XML文档的应用程序或XSLT应用程序(不可用于只读XML的应用程序)
JDOM
优点:①是基于树的处理XML的Java API,把树加载在内存中
②没有向下兼容的限制,因此比DOM简单
③速度快,缺陷少
④具有SAX的JAVA规则
缺点:①不能处理大于内存的文档
②JDOM表示XML文档逻辑模型。不能保证每个字节真正变换。
③针对实例文档不提供DTD与模式的任何实际模型。
④不支持与DOM中相应遍历包
最适合于:JDOM具有树的便利,也有SAX的JAVA规则。在需要平衡时使用
sax, dom, jdom技术对比的更多相关文章
- sax/dom/jdom/dom4j的区别
sax/dom/jdom/dom4j的区别[转] 博客分类: xml 网上能够查到很多的4种解析方式的区别,我再做一下摘录和总结,顺带给自己做个备份. SAX sax分析器在对xml文档进行分析时 ...
- DOM、SAX、JDOM、DOM4J四种XML解析方法PK
基础方法(指不需要导入jar包,java自身提供的解析方式):DOM.SAXDOM:是一种平台无关的官方解析方式 --优点: (1)形成了树结构,直观好理解,代码更易编写 ...
- java操作xml方式比较与详解(DOM、SAX、JDOM、DOM4J)
java中四种操作(DOM.SAX.JDOM.DOM4J)xml方式的比较与详解 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准. ...
- java xml解析方式(DOM、SAX、JDOM、DOM4J)
XML值可扩展标记语言,是用来传输和存储数据的. XMl的特定: XMl文档必须包含根元素.该元素是所有其他元素的父元素.XML文档中的元素形成了一颗文档树,树中的每个元素都可存在子元素. 所有XML ...
- 达梦7的试用 与SQLSERVER的简单技术对比
达梦7的试用 与SQLSERVER的简单技术对比 达梦数据库公司推出了他们的数据库服务管理平台,可以在该平台使用达梦数据库而无须安装达梦7数据库 地址:http://online.dameng.com ...
- Commons JXPath - DOM/JDOM Document Access
除了 JavaBean,JXPath 也可以访问 DOM/JDOM. 示例 XML: <?xml version="1.0" encoding="utf-8&quo ...
- 四种加载React数据的技术对比(Meteor 转)
1.四种加载React数据的技术对比(Meteor 转) : https://sanwen8.cn/p/31e4kdE.html 2. Meteor + Appolo TelescopeJS/Te ...
- DOM、SAX、JDOM、DOM4J以及PULL在XML文件解析中的工作原理以及优缺点对比
1. DOM(Document Object Model)文档对象模型1. DOM是W3C指定的一套规范标准,核心是按树形结构处理数据,DOM解析器读入XML文件并在内存中建立一个结构一模一样的&qu ...
- java中四种操作(dom、sax、jdom、dom4j)xml方式详解与比较
1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特 ...
- 对DOM,SAX,JDOM,DOM4J四种方法解析XML文件的分析
1.DOM 与平台无关的官方解析方式 DOM是一次性把xml文件加载到内存中,形成一个节点树 对内存有要求 2.SAX java提供的基于事件驱动的解析方式 每次遇到一个标签,会触发相应的事件方法 3 ...
随机推荐
- 干货分享:Air780E软件指南:字符串处理
一.Lua字符串介绍 关于字符串,Lua提供了一些灵活且强大的功能,一些入门知识如下: 1.1 字符串定义 在Lua中,字符串可以用单引号'或双引号"来定义.例如: localstr1='H ...
- 海外模组联网非常难?不往忘了APN配置…
除了中国之外,国外的4G信号都比较差劲. 做海外的设备,如果忽视了射频的信号质量,肯定是要吃大亏的! 所以,海外模组的联网问题,会比国内要多不少. 客户在实际应用中或多或少都会遇到: 网络相关问题 ...
- apisix问题记录
负载均衡 可以给 rest api(9080)做负载均衡 不可以给dashboard做负载均衡,否则会出现闪退,dashboard之间的token并不是通用的 路由导出 openapi 路由导出ope ...
- HTTP请求与响应格式解析
HTTP是Web浏览器与Web服务器之间通信的标准协议,HTTP指明了客户端如何与服务器建立连接,如果从服务器请求数据,服务器如何响应请求,关闭连接.HTTP是使用TCP/IP协议进行传输数据的,也 ...
- Impala学习--代码生成(Code Generation)
代码生成 (Code Generation) Table of Contents 1 概述 2 为何使用代码生成 3 llvm 4 Impala使用IR 5 示例 6 总结 1 概述 Cloudera ...
- 加密 DB2 Universal Database 中的数据值
在本文中,我们演示了 IBM DB2 Universal Database Version 7.2 中新的加密函数如何提供简单方式来加密敏感数据. 评论: Bruce BenfieldIBM Ric ...
- 《Java开发手册》-部分编码规范分享
0. 前言 本文来自<阿里巴巴Java开发手册>,以下内容均根据自己偏好摘抄.总结.分享. 1. 编程规约 包名单数,类名复数.例如:com.tao.util.JsonUtils.java ...
- ZCMU-1153
思路 一个感觉是规律问题的数学问题 因为输入的是n所以要的出有关n的关系或者关系 有关排序,所以可以从位次入手,设双胞胎前一个位置在ai,后一个在bi. Sum(bi-ai)=(2+3+4+5+6+. ...
- C#和sql 中的 四舍五入向下向上取整
c#四舍五入取整 Math.Round(3.45, 0, MidpointRounding.AwayFromZero) 上取整或下取整 Math.Ceiling(3.1)=4; Math.Floor( ...
- VTK 9.2 Qt 5.14 安装及错误处理
参考VTK9.1.0在Windows10+VS2019+Qt 5.15.2环境下编译安装以及VTK应用于QT_vtk-qt安装包_isongxw的博客-CSDN博客 安装注意:编译release和de ...