问上xml文件解析方式的有关问题
问下xml文件解析方式的问题1.dom解析方式和sax方式的主要不同是什么?2.dom4j的解析方式是什么?[最优解释]E
问下xml文件解析方式的问题 1.dom解析方式和sax方式的主要不同是什么? 2.dom4j的解析方式是什么?[最优解释]
Element root = new SAXReader().read(file).getRootElement();// xml文档的根节点 Iterator iterator = root.elements().iterator();// 获取xml的子节点 while (iterator.hasNext()) {// 循环子节点 Element element = (Element) iterator.next();// xml文档的一级子节点 } [其他解释] Dom: 一次性把XML的内容全读到内存里,创建一棵XML树
SAX:使用流的方式读取XML的内容,从文件开头读一部分,解析,继续读,不需要太多内存
Dom4j,看名字就可以知道使用的是Dom的方式解析XML
[其他解释] 1.使用DOM解析XML时,首先将XML文档加载到内存当中,然后可以通过随机的方式访问内存中的DOM树;SAX是基于事件而且是顺序执行的,一旦经过了某个元素,我们就没有办法再去访问它了,SAX不必事先将整个XML文档加载到内存当中,因此它占据内存要比DOM小,对于大型的XML文档来说,通常会使用SAX而不是DOM进行解析。 SAX也是使用的观察者模式.
2.dom4j完全支持DOM,SAX 和JAXP
[其他解释] 楼主的问题直接上dom4j官网看更好,上面就很详细的介绍了
[其他解释] 一楼自己占。
[其他解释] 2楼在回答我的问题么?
[其他解释] 引用: Dom: 一次性把XML的内容全读到内存里,创建一棵XML树 SAX:使用流的方式读取XML的内容,从文件开头读一部分,解析,继续读,不需要太多内存 Dom4j,看名字就可以知道使用的是Dom的方式解析XML 那dom4j的解析器为什么是saxReader?dom4j也是把xml内容全部读到内存中吗?
[其他解释] 引用: 1.使用DOM解析XML时,首先将XML文档加载到内存当中,然后可以通过随机的方式访问内存中的DOM树;SAX是基于事件而且是顺序执行的,一旦经过了某个元素,我们就没有办法再去访问它了,SAX不必事先将整个XML文档加载到内存当中,因此它占据内存要比DOM小,对于大型的XML文档来说,通常会使用SAX而不是DOM进行解析。 SAX也是使用的观察者模式. 2.do…… dom4j对于dom和sax解析都支持,那么具体是如何支持的?就是那些方法体现了dom解析,哪些方法体现了sax解析,简单举两个例子就行。有点晕了。谢谢哈!