12.6 选择dom4j还是JDOM
对比本章介绍的JDOM和前一章介绍的dom4j,其实两者在编程方式上的差异微乎其微,除了少量API方法有所差异之外,使用起来同样简单易用。
对于这样两套功能完全相同,用法基本相似的XML API,我们在应用程序中不可避免地需要进行取舍,那么到底应该使用dom4j还是JDOM呢?
就目前实际使用来看,笔者更倾向于使用dom4j而不是JDOM。这样选择的理由如下:
dom4j采用面向接口的方式进行编程,而JDOM采用面向实现类的方式进行编程。就这点来看,dom4j比JDOM更灵活。由于dom4j采用了面向接口的方式,因此当程序底层需要选择不同的解析器时,dom4j更灵活。
在一些民间和官方的性能评测上,dom4j的解析性能比JDOM更优秀。
从一些著名的开源框架来看,比如目前非常流行的Hibernate框架,它们在处理XML文档时也都选择了dom4j。
综合上面3个原因,我们认为基本上选择dom4j比JDOM更有优势。
值得指出的是,由于有些Web服务器、应用服务器和Java框架本身已经是基于dom4j或JDOM的,在这种情况下,我们在应用程序中可能不能任意选择dom4j或JDOM。假设应用程序最后需要部署在A服务器上,而A服务器是基于dom4j 1.5版本的,如果我们的应用程序试图使用dom4j 1.6.1,那么可能会引起版本冲突,在这种情况下我们只能退而求其次,选择使用JDOM进行解析。反之,如果应用程序最后需要部署在B服务器上,而B服务器是基于JDOM 1.0的,如果我们的应用程序试图使用JDOM 1.1,也可能会引起版本冲突,在这种情况下我们应该选择dom4j。