DOM

优缺点:实现 W3C 标准,有多种编程语言支持这种解析方式,并且这种方法本身操作上简单快捷,十分易于初学者掌握。其处理方式是将 XML 整个作为类似树结构的方式读入内存中以便操作及解析,因此支持应用程序对 XML 数据的内容和结构进行修改,但是同时由于其需要在处理开始时将整个 XML 文件读入到内存中去进行分析,因此其在解析大数据量的 XML 文件时会遇到类似于内存泄露以及程序崩溃的风险,请对这点多加注意。

适用范围:小型 XML 文件解析、需要全解析或者大部分解析 XML、需要修改 XML 树内容以生成自己的对象模型

SAX

SAX 从根本上解决了 DOM 在解析 XML 文档时产生的占用大量资源的问题。其实现是通过类似于流解析的技术,通读整个 XML 文档树,通过事件处理器来响应程序员对于 XML 数据解析的需求。由于其不需要将整个 XML 文档读入内存当中,它对系统资源的节省是十分显而易见的,它在一些需要处理大型 XML 文档以及性能要求较高的场合有起了十分重要的作用。支持 XPath 查询的 SAX 使得开发人员更加灵活,处理起 XML 来更加的得心应手。但是同时,其仍然有一些不足之处也困扰广大的开发人员:首先是它十分复杂的 API 接口令人望而生畏,其次由于其是属于类似流解析的文件扫描方式,因此不支持应用程序对于 XML 树内容结构等的修改,可能会有不便之处。

适用范围:大型 XML 文件解析、只需要部分解析或者只想取得部分 XML 树内容、有 XPath 查询需求、有自己生成特定 XML 树对象模型的需求

Digester/JAXB

优缺点 : 由于其是在上述两者的基础上衍生出来的工具类,为的是满足将 XML 转换为 JavaBean 的特殊需求,故而没有什么特别明显的优缺点。作为大名鼎鼎的开源框架 Struts 的 XML 解析工具 Digester,为我们带来了将 XML 转换为 JavaBean 的可靠方法。

适用范围 : 有将 XML 文档直接转换为 JavaBean 需求。

最新文章

  1. mysq数据库再次理解
  2. cinder
  3. sqlserver2008附加数据库——错误3415
  4. cursor变换
  5. iOS_SN_Socket网络编程(一)
  6. C#数学运算表达式解释器
  7. python爬微信公众号前10篇历史文章(6)-话说http cookies
  8. [Javascript] js的类和对象
  9. 每日一练ACM 2019.04.14
  10. mysql 开发进阶篇系列 49 表的数据导出(into outfile,mysqldump)
  11. mysql高可用架构之MHA,haproxy实现读写分离详解
  12. thinkpad e系列 装win7过程
  13. 安装php7.2并且整合nginx且分开部署
  14. 使用WinDbg下的gflags工具导致程序无法执行
  15. Ubuntu上pip安装uwsgi失败的原因之一(未联网)
  16. javascript 模拟按键点击提交
  17. Cmake编译SDL2
  18. 解决使用Foxmail客户端软件不能收取腾讯企业邮箱的全部邮件
  19. JVM自动内存管理:对象判定和回收算法
  20. MyEclipse 过期

热门文章

  1. STM32学习笔记:【001】时钟树与RCC
  2. IT术语
  3. golang 常量
  4. Spring Boot 启动:No active profile set, falling back to default profiles: default
  5. spring中获取dao或对象中方法的实例化对象
  6. 057、macvlan 网络隔离和连通(2019-03-26 周二)
  7. retry示例
  8. SQL Server进阶 窗口函数
  9. linux随机生成密码
  10. 【tmos】如何在Interceptor拦截器中注入其他数据