使用dom4j解析xml的时候很慢
Document document = saxread.read(file);
List list = document.selectNodes("//cg");
执行这两条的时候花了700多毫秒,运行完的时间也就怎么多
占了将近全部的时间我换了dom
运行完后的时间是300多毫秒都是解析相同的xml文件   <!-- xml结构--><?xml version="1.0" encoding="GBK"?>
   <xmlj>   <query name="" type="" value="">
   </query>
   
   <query name="" type="" value="">
       <logic way="" name="" type="" value="" />
   <logic date="" name="" type="!=" value="" />
   </query>
   
   <query name="" type="" value="" >
         <logic date="" name="" type="" value=""/>
   </query>   <query name="" type="" value=""/>
   
   <query name="" type="" value="">
          <logic date="" name="" type="" value=""/>  
   </query>   <query name="" type="" value=""/>   <query name="" type="" value=""/></xmlj>请大家帮我分析下是什么原因

解决方案 »

  1.   

    虽然DOM4J代表了完全独立的开发结果,但最初,它是JDOM的一种智能分支。它合并了许多超出基本XML文档表示的功能,包括集成的XPath支持、XML Schema支持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表示的选项,它通过DOM4J API和标准DOM接口具有并行访问功能。从2000下半年开始,它就一直处于开发之中。   为支持所有这些功能,DOM4J使用接口和抽象基本类方法。DOM4J大量使用了API中的Collections类,但是在许多情况下,它还提供一些替代方法以允许更好的性能或更直接的编码方法。直接好处是,虽然DOM4J付出了更复杂的API的代价,但是它提供了比JDOM大得多的灵活性。   在添加灵活性、XPath集成和对大文档处理的目标时,DOM4J的目标与JDOM是一样的:针对Java开发者的易用性和直观操作。它还致力于成为比JDOM更完整的解决方案,实现在本质上处理所有Java/XML问题的目标。在完成该目标时,它比JDOM更少强调防止不正确的应用程序行为。   DOM4J是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的Java软件都在使用DOM4J来读写XML,特别值得一提的是连Sun的JAXM也在用DOM4J。 
      

  2.   

    使用 DocumentHelper 类创建一个文档实例。 DocumentHelper 是生成 XML 文档节点的 dom4j API 工厂类。  Document document = DocumentHelper.createDocument(); 
    使用 addElement() 方法创建根元素 catalog 。 addElement() 用于向 XML 文档中增加元素。 Element catalogElement = document.addElement("catalog"); 
    在 catalog 元素中使用 addComment() 方法添加注释“An XML catalog”。  catalogElement.addComment("An XML catalog"); 
    在 catalog 元素中使用 addProcessingInstruction() 方法增加一个处理指令。 catalogElement.addProcessingInstruction("target","text"); 
    在 catalog 元素中使用 addElement() 方法增加 journal 元素。 Element journalElement =  catalogElement.addElement("journal"); 
    使用 addAttribute() 方法向 journal 元素添加 title 和 publisher 属性。 journalElement.addAttribute("title", "XML Zone");
             journalElement.addAttribute("publisher", "IBM developerWorks"); 
    向 article 元素中添加 journal 元素。 Element articleElement=journalElement.addElement("article"); 
    为 article 元素增加 level 和 date 属性。 articleElement.addAttribute("level", "Intermediate");
          articleElement.addAttribute("date", "December-2001"); 
    向 article 元素中增加 title 元素。 Element titleElement=articleElement.addElement("title"); 
    使用 setText() 方法设置 article 元素的文本。 titleElement.setText("Java configuration with XML Schema"); 
    在 article 元素中增加 author 元素。 Element authorElement=articleElement.addElement("author"); 
    在 author 元素中增加 firstname 元素并设置该元素的文本。 Element  firstNameElement=authorElement.addElement("firstname");
         firstNameElement.setText("Marcello");