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