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

一、四种方式的对比

【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

你可能感兴趣的:(Java解析xml,java,xml)