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