有一部分XML解析器使用者认为 JDOM 很慢,至少比起Dom4j来说效率不快。其实JDOM和DOM4J一样,同属优秀的开源XML解析器,完全不必这样担心。现在就实际拿一些实际使用的例子,作为简单的测试用例,对JDOM以及DOM4J最基本的文档解析功能来说明这个问题。JDOM测试用例如下:
public Document getDoc(STring filenAMe) throws IOException, JDOMException { SAXBuilder sb = new SAXBuilder();
// SAXBuilder sb = new SAXBuilder("org.apache.CRimson.parser.XMLReaderImpl"); Document doc = null; //传递的是文件路径时 doc = sb.build(new FileInputStream(filename));
return doc; }
DOM4J测试用例如下
public Document getDoc(String filename) throws FileNotFoundException, DocumentException { SAXReader sb = new SAXReader();
Document doc = null;
//传递的是文件路径时 doc = sb.read(new FileInputStream(filename));
return doc; }
测试平台环境:Intel 1.4G 迅驰 768MB , winXP Pro sp2, JDK 1.4.2 JDOM版本 1.0RC1DOM4j版本 1.5.2
public Document getDoc(String filename) throws IOException, JDOMException { SAXBuilder sb = new SAXBuilder();
// SAXBuilder sb = new SAXBuilder("org.apache.crimson.parser.XMLReaderImpl"); Document doc = null; //传递的是文件路径时 doc = sb.build(new FileInputStream(filename));
return doc; }
DOM4J测试用例如下
public Document getDoc(String filename) throws FileNotFoundException, DocumentException { SAXReader sb = new SAXReader();
Document doc = null;
//传递的是文件路径时 doc = sb.read(new FileInputStream(filename));
return doc; }
测试平台环境:Intel 1.4G 迅驰 768MB , winXp Pro sp2, JDK 1.4.2 JDOM版本 1.0RC1DOM4j版本 1.5.2
public Document getDoc(String filename) throws FileNotFoundException, DocumentException { SAXReader sb = new SAXReader();
Document doc = null;
//传递的是文件路径时 doc = sb.read(new FileInputStream(filename));
return doc; }
测试平台环境:Intel 1.4G 迅驰 768MB , winXp Pro sp2, JDK 1.4.2 JDOM版本 1.0RC1DOM4j版本 1.5.2
两者均不指定SAX解析器类,都是用SAX事件方式得到Document树型结构
测试文档样见文档最后,为数层结构XML文档。
每个测试用例每组同时做200次为5组,察看总体解析速度JDOM6.93s 6.94s 6.96s 7.05s 7sDOM4J7.551s 7.581s 7.631s 7.55s 7.621s
从结果来看JDOM和DOM4J解析速度为同一级别,可能不同的文档速度稍微有差别,当JDOM XML SAX解析器换成 org.apache.crimson.parser.XMLReaderImpl 的时候,速度会提高0.5s左右,而DOM4j提高0.2s左右。另外我还对多个结构的XML文档解析,2万多行的XML文档解析,均没有发现JDOM解析比DOM4j慢的情况,速度基本是两者55分。有些JDOM快,有些DOM4j快,有兴趣的读者可以自己做做试验。
关于一些在解析的时候速度变慢,还有内存溢出的说法,我看还是由于其他的原因导致的,或者遍历写法有问题所至。所以无论是使用DOM4j还是JDOM都可以按照自己的喜欢爱好使用,完全不必担心所谓的速度问题。
分享到:
相关推荐
DOM、JDOM、DOM4J解析XML实例
用用4中方式(dom4j、jdom、dom、sax)解析xml
dom4j和jdom 的jar包,版本分别为:dom4j-1.6.1,jdom-2.0.5,需要的拿走。
java中四种操作(dom、sax、jdom、dom4j)xml方式详解与
jdom dom4j dom4j-1.6.1.jar JAR包
浅谈java开发开发中的dom,jdom,dom4j,以及他们之间的区别.
XML的四种解析器(dom,sax,jdom,dom4j)原理及性能比较,超详细XML的四种解析器原理及性能比较,超详细
DOM JDOM dom4j 实例源码 DOM JDOM dom4j 实例源码
dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的...
解析XML文件时,jdom和dom4j的jar包 具体项目代码 http://blog.csdn.net/sdsky1987/article/details/7286306
JDOM_Dom4j.rarJDOM_Dom4j.rar
java解析、输出xml文档需要的几个jar包 jdom.jar dom4j.jar sax.jar
Jdom.chm & Dom4j.chm
xml doc sax jdom dom4j完全讲解 xml doc sax jdom dom4j完全讲解xml doc sax jdom dom4j完全讲解 xml doc sax jdom dom4j完全讲解 xml doc sax jdom dom4j完全讲解 xml doc sax jdom dom4j完全讲解 xml doc sax ...
Java 四种方式操作xml,包括xml,dom,sax,jdom这四种方式的一个简单例子。
DOM、JDOM、DOM4J解析XML实例.pdf
与JDOM不同的是,dom4j使用接口和抽象基类,虽然Dom4j的API相对要复杂一些,但它提供了比JDOM更好的灵活性。 Dom4j是一个非常优秀的Java XML API,具有性能优异、功能强大和极易使用的特点。现在很多软件采用的Dom4...
XML解析四种解析方式 DOM SAX JDOM DOM4J
Java解析XML汇总DOM_SAX_JDOM_DOM4j_XPath 实例