DOM是与平台无关,其他平台也可以使用,而其他三种是java平台的解析方式
SAX是基于事件驱动的解析 重写 onsatrtdocument onenddocument 等方法,在这些方法中处理文档,一个节点一个节点的处理
DOM是一次性解析完一整个XML文件,因此需要将整个XML文件加载到内存中,如果XML文件过大时容易导致OOM
DOM
优点:
形成了树结构,直观好理解,代码更易编写
解析过程中树结构保留在内存中,方便修改
缺点:
XML较大时耗费内存,容易影响解析性能找成内存溢出
SAX
优点:
采用驱动模式,堆内存耗费比较少
适用于只需处理xml中数据的时候
缺点:
不易编码
很难同时访问同一个XML中的不同数据
JDOM
仅使用具体类而不使用接口
API大量使用了Collections接口
DOM4J
JDOM的一个分支合并了超出基本XML文档表示的功能
性能优异,灵活性好,功能强大