java中四种主流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支持、XMLSchema支持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表示的选项,它通过DOM4J API和标准DOM接口具有并行访问功能。复杂的API使他在功能性和扩展上大大超出了JDOM,开发中其性能优异、功能强大和极端易用使用,同时它也是一个开放源代码的软件,让它在各种解析方式中,占领了最多的开发者的拥护。
优点:以上以阐明
缺点:在拥护者心中(没有,(*^__^*) )
具体解析方式,见下篇