首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

怎么提高DOM4j读取xml的速度

2012-02-09 
如何提高DOM4j读取xml的速度?importjava.io.Fileimportorg.dom4j.DocumentExceptionimportorg.dom4j.io.

如何提高DOM4j读取xml的速度?
import   java.io.File;

import   org.dom4j.DocumentException;
import   org.dom4j.io.SAXReader;
import   org.dom4j.io.XPP3Reader;
import   org.dom4j.io.XPPReader;

public   class   TransformErrorHandle   {
public   static   void   main(String[]   args)   {
String   filePath   =   "D:\\TransFormTest ";
String   fileName   =   "test.xml ";

org.dom4j.Document   doc   =   null;

try   {
doc   =   new   SAXReader().read(new   File(filePath,fileName));

String   timeOut   =   doc
.selectSingleNode( "//B2BI/B2BI_HEADER/TIME_OUT ").getText();

String   tranType   =   doc.selectSingleNode(
"//B2BI/B2BI_HEADER/TRAN_TYPE ").getText();
tempTime   =   System.currentTimeMillis();

String   msgIn   =   doc.selectSingleNode(
"//B2BI/B2BI_BODY//MSG_IN ").getText();

}   catch   (Exception   e)   {
e.printStackTrace();
}

}

}
我的程序如上所示,经过我多次测试发现,DOM4j在解析xml的时候有两处比较耗时:
1,装载xml文件的时doc   =   new   SAXReader().read(new   File(filePath,fileName))
2,获取第一个元素时

请问各位大侠,有没有什么好一点的办法把这两处的时间缩短一点!?

[解决办法]
1,减小XML。
2,//B2BI/B2BI_HEADER/TIME_OUT,如果是从根元素开始的,不要用//,而应该用/
[解决办法]
1,装载xml文件的时doc = new SAXReader().read(new File(filePath,fileName))
因为后来的执行都是在内存中执行的,再加上访问文件的消耗,所以,提速的方法只能是缩小xml文件。当然,清理硬盘碎片等操作能在特定环境下有用

2,获取第一个元素时
第一次获取元素时,给所有结点建立索引。提速的方法和上类似,缩小xml文件



[解决办法]
因为dom给他建索引了,所以慢了

我没表达清楚

热点排行