java JDOM、DOM、 DOM4J、 SAX四种解析的特点总结

时间:2023-02-26 20:24:33
DOM解析:
 优点:
整个文档树都在内存当中,便于操作;支持删除、修改、重新排列等多功能。
 缺点:将整个文档调入内存(经常包含大量无用的节点),浪费时间和空间。
 使用场合:一旦解析了文档还需要多次访问这些数据,而且资源比较充足(如内存、CPU等)。
JDOM解析:
 优点:

              1、使用具体类而不是接口,简化了DOM的API。
              2、大量使用了Java集合类,方便了Java开发人员。
  缺点:
              1、没有较好的灵活性。
              2、性能较差。
DOM4J解析:
简单易用,采用Java集合框架,并完全支持DOM、SAX和JAXP。
  优点:
              1、大量使用了Java集合类,方便Java开发人员,同时提供一些提高性能的替代方法。
              2、支持XPath。
              3、有很好的性能。
 
  缺点:
          1、大量使用了接口,API较为复杂。
SAX解析:
流模型中的推模型分析方式。通过事件驱动,每发现一个节点就引发一个事件,
            通过回调方法完成解析工作,解析XML文档的逻辑需要应用程序完成。
  优点:
       不用事先调入整个文档,占用资源少。尤其在嵌入式环境中,
       极力推荐采用SAX进行解析XML文档。
       1、不需要等待所有数据都被处理,分析就能立即开始。
       2、只在读取数据时检查数据,不需要保存在内存中。
       3、可以在某个条件得到满足时停止解析,不必解析整个文档。
       4、效率和性能较高,能解析大于系统内存的文档。
 缺点:
       不像DOM一样将文档长期驻留在内存,数据不是持久的,事件
       过后,如没有保存数据,那么数据就会丢失。
       1、需要应用程序自己负责TAG的处理逻辑(例如维护父/子关系等),使用麻烦。
       2、单向导航,很难同时访问同一文档的不同部分数据,不支持XPath。
        使用场合:机器性能有限,尤其是在嵌入式环境,如Android,极力推荐采用SAX进行
    解析XML文档。