sax, dom, jdom技术对比

 

                                     sax, dom, jdom技术对比 
    
                                                                   ---天楠于2005-11-25 
    
    SAX分析器在 XML 文档 行分析 ,触 一系列的事件, 用程序通 事件 理函数 实现对 XML 文档的 访问
由于事件触发本身是有时序性的,因此,SAX分析器提供的是一种对XML文档的顺序访问机制,对于已经分析过的部分,不能再倒回去重新处理。
    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所示:
    
表1: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 规则 。在需要平衡 使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值