`

java中四种主流xml解析方式介绍

    博客分类:
  • xml
阅读更多

1.DOM

DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。 即最通用,最原生的xml解析方式,由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。

 

优点:解析时,会将整个xml文档载入内存中,这一特点,即可以修改它以便应用程序能对数据和结构作出更改。它还可以在任何时候在树中上下导航,另外由于DOM方式是W3C标准,后续的各种方式基本多少会借鉴参考与它,所以它使用起来也要比较简单。

缺点:由于解析时,会装在整个xml文件,假使xml结构复杂且巨大,难免对性能上,有一定的影响。(缺点本身又是优点,是不是很矛盾呢,>…<)

2.SAX

SAX解析器采用了基于事件的模型,所以它在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到,更因它的此特性,开发人员可以选择性的处理自己需要的数据,这一扩展性一定程度上加大了使用SAX解析器的难度,而且很难同时访问同一个文档中的多处不同数据。

 

优点:分析能够立即开始,而不需要像DOM一样,装载整个文档。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是个巨大的优点,并且可以随时停止解析,及时返还占用的系统资源。在速度效率和资源占用这几点上,完胜于DOM,这也为它博得了更多的开发人员的亲睐。

缺点:很难同时访问文档中的各处不同的数据,因为它不会装载整个文档,相对的,修改方面也不算方便,且难度上比DOM稍高。

 

 

 

3.JDOM

java官方指定的文档模型,并最终用于java标准扩展。它简化与XML的交互并且比使用DOM实现更快。大量使用具体类而不是提供接口,大大简化了API,且更贴近java开发者的使用。

JDOM还包括对程序行为的相当广泛检查以防止用户做任何在XML中无意义的事。然而,它仍需要您充分理解XML以便做一些超出基本的工作(或者甚至理解某些情况下的错误)。这也许是比学习DOM或JDOM接口都更有意义的工作。 且他还是apache许可证下的可发布的开源项目

 

优点:使用上更简化,性能比DOM更加好,官方文档声明,只需花20%的精力,以解决80%的实际问题。

缺点:扩展性较差

 

 

 

 

4.DOM4J

集成的XPath支持、XML Schema支持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表示的选项,它通过DOM4J API和标准DOM接口具有并行访问功能。复杂的API使他在功能性和扩展上大大超出了JDOM,开发中其性能优异、功能强大和极端易用使用,同时它也是一个开放源代码的软件,让它在各种解析方式中,占领了最多的开发者的拥护。

 

优点:以上以阐明

缺点:在拥护者心中(没有,(*^__^*) )

 

 

具体解析方式,见下篇

 

 

 

 

 

分享到:
评论

相关推荐

    Java中四种XML解析技术

    在平时工作中,难免会遇到把 XML 作为数据存储格式。面对目前种类繁多的解决方案,哪个最适合...在这篇文章中,我对这四种主流方案做一个不完全评测,仅仅针对遍历 XML 这块来测试,因为遍历 XML 是工作中使用最多的。

    生成、解析xml的四种方式(dom,dom4j,sax,jdom)

    4种最主流、最全面、最详细的生成和解析xml的4种方式,包括Dom,Dom4j,Sax,JDom,读懂了绝对好用xml,非常好的入门项目,而且精心排版,逻辑清晰

    java解析xml的四种方法

    在平时工作中,难免会遇到把XML作为数据存储格式。面对目前种类繁多的解决方案,哪个...在这篇文章中,我对这四种主流方案做一个不完全评测,仅仅针对遍历XML这块来测试,因为遍历XML是工作中使用最多的(至少我认为)。

    四种解析XML之分析

    在平时工作中,难免会遇到把 XML 作为数据存储格式。面对目前种类繁多的解决方案,哪个最适合...在这篇文章中,我对这四种主流方案做一个不完全评测,仅仅针对遍历 XML 这块来测试,因为遍历 XML 是工作中使用最多的

    Java 处理 XML 的三种主流技术及介绍

    本文作者对于 Java 处理 XML 的几种主流技术进行一些总结和介绍,希望帮助那些有不同需求的开发人员对于 XML 处理技术的作出优的选择。  初,XML 语言仅仅是意图用来作为 HTML 语言的替代品而出现的,但是随着该...

    dom4j-XML解析.zip

    在IBM developerWorks上面还可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,所以可以知道dom4j无论在哪个方面都是非常出色的。如今可以看到越来越多的Java软件都在使用dom4j来读写XML,...

    疯狂XML讲义 源码

    第三部分介绍了DOM、SAX、JAXP、dom4j、JDOM、XQuery和XQJ等,其中的DOM、SAX、JAXP、dom4i和JDOM都以结构化的方式来创建、解析XML文档,从而可以将XML文档作为数据传输工具,而XQuery则是一种新规范,通过X Query...

    疯狂xml讲义

    第三部分介绍了DOM、SAX、JAXP、dom4j、JDOM、XQuery和XQJ等,其中的DOM、SAX、JAXP、dom4j和JDOM都以结构化的方式来创建、解析XML文档,从而可以将XML文档作为数据传输工具,而XQuery则是一种新规范,通过XQuery...

    疯狂XML讲义.part3.rar

    第三部分介绍了DOM、SAX、JAXP、dom4j、JDOM、XQuery和XQJ等,其中的DOM、SAX、JAXP、dom4j和JDOM都以结构化的方式来创建、解析XML文档,从而可以将XML文档作为数据传输工具,而XQuery则是一种新规范,通过XQuery...

    疯狂XML讲义

    第三部分介绍了DOM、SAX、JAXP、dom4j、, JDOM、XQuery和XQJ等,其中的DOM、SAX、JAXP、dom4j和JDOM都以结构化的, 方式来创建、解析XML文档,从而可以将XML文档作为数据传输工具,而, XQuery则是一种新规范,通过...

    xml解析器-dom4j的支持包_ 教程

    在IBM developerWorks上面可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,dom4j无论在那个方面都是非常出色的。如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的...

    疯狂XML讲义(Web Service).pdf

    第三部分介绍了DOM、SAX、JAXP、dom4j、JDOM、XQuery和XQJ等,其中的DOM、SAX、JAXP、dom4j和JDOM都以结构化的方式来创建、解析XML文档,从而可以将XML文档作为数据传输工具,而XQuery则是一种新规范,通过XQuery...

    疯狂XML讲义.part1

    第三部分介绍了DOM、SAX、JAXP、dom4j、JDOM、XQuery和XQJ等,其中的DOM、SAX、JAXP、dom4j和JDOM都以结构化的方式来创建、解析XML文档,从而可以将XML文档作为数据传输工具,而XQuery则是一种新规范,通过XQuery...

    疯狂XML讲义.part2.rar

    第三部分介绍了DOM、SAX、JAXP、dom4j、JDOM、XQuery和XQJ等,其中的DOM、SAX、JAXP、dom4j和JDOM都以结构化的方式来创建、解析XML文档,从而可以将XML文档作为数据传输工具,而XQuery则是一种新规范,通过XQuery...

    Servlet 容器工作原理解析

    Servlet 容器如何解析你在 web.xml 中定义的 Servlet ?用户的请求是如何被分配给指定的 Servlet 的? Servlet 容器如何管理 Servlet 生命周期?你还将了解到最新的 Servlet 的 API 的类层次结构,以及 Servlet 中...

Global site tag (gtag.js) - Google Analytics