sax/dom/jdom/dom4j的区别
sax/dom/jdom/dom4j的区别【转】 博客分类: xml 网上能够查到很多的4种解析方式的区别,我再做一下摘录和总结,顺带给自己做个备份。 SAX sax分析器在对xml文档进行分析时,触发一系列的事件,应用程序通过事件处理函数实现对xml文档的访问. 因为事件触发是有时序性的,所以sax分析器提供的是一种对xml文档的顺序访问机制,对于已经分析过的部分, 不能再重新倒回去处理.此外,它也不能同时访问处理2个tag. sax分析器在实现时,只是顺序地检查xml文档中的字节流,判断当前字节是xml语法中的哪一部分,检查是否符合 xml语法并且触发相应的事件.对于事件处理函数的本身,要由应用程序自己来实现. SAX解析器采用了基于事件的模型,它在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。 同DOM分析器相比,sax分析器对xml文档的处理缺乏灵活性,但对于只访问xml文档中的数据而不改变应用程序 来说,sax分析器的效率会很高. sax对内存要求也比较低. 优点:1、无需将整个文档加载到内存中,所以内存消耗少. 2 、推模型允许注册多个contentHandler. 缺点:1、没有内置的文档导航支持. 2、不能随机访问xml文档. 3、不支持原地修改xml. 4、不支持名字空间作用域. 适合