XML解析技术概述
xml解析方式分两种:DOM方式和SAX方式
- DOM:文档对象模型
- SAX:这种属于开源社区XML-DEV,几乎所有XML解析都支持它
xml解析开发包 - JAXP:是由SUN公司推出的解析标准实现
- Dom4J:是开源组织推出的解析包
JAXP:(java Api for xml Processing)开发包是Javase的一部分。有几个子包组成
- org.w3c.dom:提供Dom方式解析XML标准接口
- org.xml,sax提供sax方式解析xml标准接口
- javax.xml提供解析xml文档的类
javax.xml.parsers包中,定义了几个工厂类,我们可以通过调用这些工厂类,得到对XML文档进行解析的DOM和SAX解析器对象。
调用DocumentBuilderFactory.newInstance()方法得到创建DOM 解析器的工厂
调用工厂对象的newDocumentBulider方法得到DOM解析器对象
调用DOM解析器对象的parse()方法解析xml文档,得到代表整个文档的Document对象,进行可以利用DOM特性对整个xml文档进行操作了。
DOM编程
DOM模型
DOM模型解析器在解析xml文档时,会把文档中的所有元素,按照其出现的层次关系,解析成一个个Node节点
Node节点对象提供了相应的方法去获得它的父节点或子节点。
DOM解析编程
- 遍历所有节点
- 查找某一个节点
- 删除节点
- 更新节点
- 添加节点
SAX解析
在使用DOM解析xml文档时,需要读取整个xml文档,在内存中构架代表整个DOM树的Document对象,从而再对xml文档进行操作,此情况下,如果xml文档特别大,就会消耗大量计算机内存,容易溢出。
sax解析允许在读取文档时对文档进行处理。而不必等待整个文档加载完才进行操作。
sax采用事件处理的方式解析xml文档,主要涉及到:解析器和事件处理器