SAXReader sax = new SAXReader();
Document xmlDoc = sax.read(new File("c://abc.xml"));
跟你主机有关系的,问下你的空间商
dom4j读取xml文件时,是读取所有树及节点的信息到内存中,再执行下一步的代码,所以会慢。
遍历的问题,特别是子节点很多的时候会更慢。
1)DOM4J性能最好,连Sun的JAXM也在用DOM4J。目前许多开源项目中大量采用DOM4J,例如大名鼎鼎的Hibernate也用DOM4J来读取XML配置文件。如果不考虑可移植性,那就采用DOM4J.
2)JDOM和DOM在性能测试时表现不佳,在测试10M文档时内存溢出。在小文档情况下还值得考虑使用DOM和JDOM。虽然JDOM的开发者已经说明他们期望在正式发行版前专注性能问题,但是从性能观点来看,它确实没有值得推荐之处。另外,DOM仍是一个非常好的选择。DOM实现广泛应用于多种编程语言。它还是许多其它与XML相关的标准的基础,因为它正式获得W3C推荐(与基于非标准的Java模型相对),所以在某些类型的项目中可能也需要它(如在JavaScript中使用DOM)。
3)SAX表现较好,这要依赖于它特定的解析方式-事件驱动。一个SAX检测即将到来的XML流,但并没有载入到内存(当然当XML流被读入时,会有部分文档暂时隐藏在内存中)。
通过上面的比较,或许是其他的原因,比如文档结构,
可以参考这篇文章http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/17/3082949.html