1.dom解析方式和sax方式的主要不同是什么?2.dom4j的解析方式是什么?

解决方案 »

  1.   

    Element root = new SAXReader().read(file).getRootElement();// xml文档的根节点
    Iterator iterator = root.elements().iterator();// 获取xml的子节点
    while (iterator.hasNext()) {// 循环子节点
    Element element = (Element) iterator.next();// xml文档的一级子节点

    }
      

  2.   

    Dom: 一次性把XML的内容全读到内存里,创建一棵XML树
    SAX:使用流的方式读取XML的内容,从文件开头读一部分,解析,继续读,不需要太多内存
    Dom4j,看名字就可以知道使用的是Dom的方式解析XML
      

  3.   


    那dom4j的解析器为什么是saxReader?dom4j也是把xml内容全部读到内存中吗?
      

  4.   

    1.使用DOM解析XML时,首先将XML文档加载到内存当中,然后可以通过随机的方式访问内存中的DOM树;SAX是基于事件而且是顺序执行的,一旦经过了某个元素,我们就没有办法再去访问它了,SAX不必事先将整个XML文档加载到内存当中,因此它占据内存要比DOM小,对于大型的XML文档来说,通常会使用SAX而不是DOM进行解析。 SAX也是使用的观察者模式.
    2.dom4j完全支持DOM,SAX 和JAXP
      

  5.   


    dom4j对于dom和sax解析都支持,那么具体是如何支持的?就是那些方法体现了dom解析,哪些方法体现了sax解析,简单举两个例子就行。有点晕了。谢谢哈!
      

  6.   

    楼主的问题直接上dom4j官网看更好,上面就很详细的介绍了