XML解析技术概述

软件151   韩闯  1531610115

1.XML 技术主要企业应用
1)存储和传输数据
2)作为框架的配置文件
2.使用xml 存储和传输数据涉及到以下两点
1)通过程序生成xml
2)读取xml 中数据 ---- xml 解析
3.XML解析技术有三种:DOM、SAX、STAX
4.什么是DOM和SAX ?
1)DOM Document Object Model ----- 文档对象模型
DOM思想:将整个xml 加载内存中,形成文档对象,所有对xml操作都对内存中文档对象进行
DOM 是官方xml解析标准
* DOM是所有所有开发语言都支持的
2)SAX Simple API for XML ----- XML 简单 API
为什么发明sax解析方式? 当xml 文档非常大,不可能将xml所有数据加载到内存
SAX 思想:一边解析 ,一边处理,一边释放内存资源 ---- 不允许在内存中保留大规模xml 数据
3)StAX The Stream API for XML ----- XML 流 API
JDK6的新特性STAX是JDK6.0中除了DOM和SAX之外的又一种拉模式处理XML文档的API,其思想和SAX相似
STAX 是一种 拉模式 xml 解析方式,SAX 是一种 推模式 XML 解析方式
推push模式:由服务器为主导,向客户端主动发送数据
拉pull模式: 由客户端为主导,主动向服务器申请数据
5.XML解析开发包
Jaxp(sun)、xml pull 、dom4j
JAXP 是sun官方推出实现技术 同时支持 DOM SAX STAX
DOM4j 是开源社区开源框架 支持 DOM 解析方式
XML PULL是Android 移动设备内置xml 解析技术 支持 STAX 解析方式
6.解析方式与解析开发包关系?
解析方式是解析xml 思想,没有具体代码,解析开发包是解析xml思想具体代码实现
7.DOM和SAX/STAX的区别
DOM
支持回写
会将整个XML载入内存,以树形结构方式存储
XML比较复杂的时候,或者当你需要随机处理文档中数据的时候不建议使用
SAX / STAX
相比DOM是一种更为轻量级的方案
采用串行方法读取 --- 文件输入流(字节、字符)读取
编程较为复杂
无法在读取过程中修改XML数据

注意:当SAX和STAX 读取xml数据时,如果读取到内存数据不释放 ----- 内存中将存在整个xml文档数据 (类似DOM 支持修改和回写)

8.DOM、SAX、STAX 在实际开发中选择?
在javaee日常开发中 ---- 优先使用DOM (编程简单)
当xml 文档数据非常多,不可能使用DOM ---造成内存溢出 ------ 优先使用STAX
移动开发 使用 STAX ---- Android XML PULL

 

posted on 2017-06-29 16:09  续忆  阅读(105)  评论(0编辑  收藏  举报