4中解析方式PK(整体)
基础方法:DOM(平台无关的官方解析方式)、SAX(基于事件驱动的解析方式)
扩展方法:JDOM、DOM4J(在基础的方法上扩展出的,只有java中能够使用的解析方法)
DOM解析时会一次性的将xml所有的内容加载到内容中,并且形成一个DOM树,若xml非常大,会比较浪费时间,对内容的性能要求也会比较高。
SAX解析是基于事件的解析,基于事件的解析就是xml解析时是逐步的解析,比如开始解析xml声明的部分就好触发startDocument()方法,等等触发其它事件方法。
选择DOM还是SAX
DOM优点:
形成了树结构,直观好理解,代码更易编写
解析过程中树结构保留在内存中,方便修改
缺点:当xml文件较大时,对内存耗费比较大,容易影响解析性能并造成内存溢出
SAX优点:
采用事件驱动模式,对内存耗费比较小
适用于只需要处理xml中数据时
缺点:不易编码
很难同时访问同一个xml中的多处不同数据
JDOM
仅使用具体类而不使用接口
API大量使用了Collections类
DOM4J
JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能
DOM4J使用接口和抽象基本类方法,是一个优秀的Java XML API
具有性能优异,灵活性好、功能强大和极端易用使用的特点
是一个开放源代码的软件
四种解析方式分析
DOM优点
SAX优点
JDOM和DOM4J
JDOM和DOMJ(DOM4J基于JDOM,性能上更好一些)
SAX方式的优缺点(按顺利一步一步往下读取)
DOM方式的优缺点
四种解析方式整体对比
JDOM与DOM4J优点
SAX优缺点
DOM解析图解---一次性加载整个xml文件
4中解析方式PK
SAX解析图解---基于事件解析,追条解析