Java解析xml——DOM、SAX、JDOM和DOM4J四种方式的汇总与比较

本文对比了Java中四种XML解析方式:DOM、SAX、JDOM和DOM4J。DOM解析将XML文件全部加载到内存,适合小文件但可能导致内存溢出;SAX基于事件驱动,内存消耗小但编码繁琐;JDOM提供更便捷的API,而DOM4J功能强大且性能优异。在小文件中,SAX速度最快,大文件时DOM4J优于JDOM。
摘要由CSDN通过智能技术生成

一、四种方式的对比

【DOM】

DOM解析是将xml整个读入内存中,并在内存中以DOM树的形式存储。它是与平台无关的官方解析方式,所以不止在Java平台可以用DOM解析,在其他的平台也可以使用。

-优点:

1、树形结构,直观,易于理解,读取方便,代码易编写。

2、树形结构保存在内存中,容易修改。

-缺点

1、因为DOM是将xml文件整个读入内存中,所以对内存消耗大,在xml文件较大时,很容易造成内存溢出的情况。

【SAX】

SAX解析是Java独有的xml文件解析方式,是基于事件驱动的,每当Java程序读到xml文件中的标签头或读到标签结尾时,会触发相应的事件进行业务的处理。

-优点:

1、基于事件驱动,对内存消耗小。

2、适用于只需要处理xml文件中的数据的情况。

-缺点:

1、因为是基于事件驱动的,所以需要针对每一种事件都要编写相应的处理方法,编码比较繁琐。

2、因为SAX并不是一次性把xml读入内存中而是依次读入xml的数据的,所以不能同时操作同一个xml文件中的多个不同的数据。

【JDOM】

DOM和SAX是Java提供的两种基础的解析xml的方式,而JDOM是在基础方法上的扩展,要使用JDOM解析xml文件,需要额外导入jar包。

-优点

1、仅使用具体类而不是用接口。

2、JDOM的API大量使用了Collections类,操作更加方便。

【DOM4J】

DOM4J和JDOM一样,是在Java提供的基础解析xml方式上的扩展,要使用DOM4J也需要导入额外的jar包。

-优点

1、功能强大,能够处理更加复杂的xml文档,包含一些超出基本xml文档的功能。

2、性能优异,对处理较大的xml文件尤为明显。


二、四种方式解析xml文件的性能测试

XmlUtil.java

/**
 * 这个类中包含了四种解析XML方式的具体方法
 * @author Dan
 *
 */
public class XmlUtil {
	
	/**
	 * DOM解析方式
	 */
	public void domParseXml() {
		System.out.println("=========DOM解析==========");
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		try {
			Do
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值