XML文件解析学习总结
2014-01-16 11:13
162 查看
使用android平台解析XML,主要使用SAX标准,在日常开发中,通常有两种比较常见的方式,来解析XML,
一种是SAX 方式,它是逐行的扫描这个文档,一边扫描,一边解析
它比DOM解析有个优点,就是你可以在解析文档的任意时刻来停止这次解析
它的缺点:1相对而言相对复杂一点
2如果有个XML,用SAX解析没问题,但是如果你想向XML中加入东西或删除东西就比较麻烦
另一种方式是DOM,就是所谓的文档对象模型,即把XML看成一棵树,有根节点,根节点下面有子节点,然后一直到下面的叶节点,DOM解析XML的时候,会先把XML全部装载到内存中,然后解析成一颗树,然后在这棵树上进行相应的操作,比如添加或删除结点等,
它的优点就是操作起来非常方便,缺点是如果要解析的XML比较大,性能就会出现一些问题,因为需要把XML先装载进来
1 什么是SAX
SAX,全称Simple API for XML,既是指一种接口,也是指一个软件包,作为接口,SAX是事件驱动型XML解析的一个标准接口,制定这个标准是为了解析XML文档
2 SAX 基本原理
SAX的工作原理简单的说就是对文档进行顺序扫描,当扫描到文档(document)的开始与结束,元素(element)的开始与结束等地方时通知时间处理函数,由事件处理函数做相应动作,然后继续同样的扫描,直至文档的结束
大多数SAX实现都会产生以下类型的事件:
SAX模型:
SAX 解析的基本过程:
左边第一列的第一个是SAX解析的工厂,使用的是工厂模式,第一列第二个是SAX的解析器,SAX解析器产生一个Reader,就是读取文件,在Reader上面,我们可以注册一些接口,比如内容处理的,错误处理的有处理DTD的,有处理文档当中的实体的,然后把文档加载进来,即SAX Reader逐行读取XML文档并解析,在注册的接口函数里面都有一些事件处理函数,我们要做的事情,就是实现这些接口,在实现类当中去覆盖接口当中的方法,即当SAX Reader解析文档的时候,我们要做的事情都写在这个方法中
3 SAX常用接口
contenHandler是java类包中一个特殊的SAX接口,位于
Org,xml,sax包中,该接口封装了一些对事件处理的一些方法,当XML解析器开始解析XML文档时,它会遇到一些特殊的事件,比如文档的开头与结束等当遇到这些事件时,XML解析器会调用ContentHandler接口中相应的方法来相应事件
ContentHandler接口的方法主要有以下几种:
4 SAX解析
如何解析XML呢,步骤如下
(1)创建事件处理程序,就是接口的实现类
(2)创建SAX解析器
(3)将事件处理程序分配给解析器
(4)对文档进行解析,将每个事件发送给处理程序
一种是SAX 方式,它是逐行的扫描这个文档,一边扫描,一边解析
它比DOM解析有个优点,就是你可以在解析文档的任意时刻来停止这次解析
它的缺点:1相对而言相对复杂一点
2如果有个XML,用SAX解析没问题,但是如果你想向XML中加入东西或删除东西就比较麻烦
另一种方式是DOM,就是所谓的文档对象模型,即把XML看成一棵树,有根节点,根节点下面有子节点,然后一直到下面的叶节点,DOM解析XML的时候,会先把XML全部装载到内存中,然后解析成一颗树,然后在这棵树上进行相应的操作,比如添加或删除结点等,
它的优点就是操作起来非常方便,缺点是如果要解析的XML比较大,性能就会出现一些问题,因为需要把XML先装载进来
1 什么是SAX
SAX,全称Simple API for XML,既是指一种接口,也是指一个软件包,作为接口,SAX是事件驱动型XML解析的一个标准接口,制定这个标准是为了解析XML文档
2 SAX 基本原理
SAX的工作原理简单的说就是对文档进行顺序扫描,当扫描到文档(document)的开始与结束,元素(element)的开始与结束等地方时通知时间处理函数,由事件处理函数做相应动作,然后继续同样的扫描,直至文档的结束
大多数SAX实现都会产生以下类型的事件:
SAX模型:
SAX 解析的基本过程:
左边第一列的第一个是SAX解析的工厂,使用的是工厂模式,第一列第二个是SAX的解析器,SAX解析器产生一个Reader,就是读取文件,在Reader上面,我们可以注册一些接口,比如内容处理的,错误处理的有处理DTD的,有处理文档当中的实体的,然后把文档加载进来,即SAX Reader逐行读取XML文档并解析,在注册的接口函数里面都有一些事件处理函数,我们要做的事情,就是实现这些接口,在实现类当中去覆盖接口当中的方法,即当SAX Reader解析文档的时候,我们要做的事情都写在这个方法中
3 SAX常用接口
contenHandler是java类包中一个特殊的SAX接口,位于
Org,xml,sax包中,该接口封装了一些对事件处理的一些方法,当XML解析器开始解析XML文档时,它会遇到一些特殊的事件,比如文档的开头与结束等当遇到这些事件时,XML解析器会调用ContentHandler接口中相应的方法来相应事件
ContentHandler接口的方法主要有以下几种:
4 SAX解析
如何解析XML呢,步骤如下
(1)创建事件处理程序,就是接口的实现类
(2)创建SAX解析器
(3)将事件处理程序分配给解析器
(4)对文档进行解析,将每个事件发送给处理程序
相关文章推荐
- Mybatis学习总结(三)——SqlMapConfig.xml全局配置文件解析
- spring MVC学习笔记(二) springMVC.xml配置文件解析
- C++解析AVI文件格式学习总结
- Hibernate学习--JPA配置文件persistence.xml解析
- Android Animation学习(三) ApiDemos解析:XML动画文件的使用
- python cookbook第三版学习笔记七:python解析csv,json,xml文件
- web.xml文件解析,以及tomcat启动常见错误总结一哈。
- XML学习总结-xml概念和dom4j解析技术-(一)
- ant的build.xml文件解析(转载方便学习)
- Ibatis学习总结4--SQL Map XML 映射文件扩展
- mybatis学习总结-核心配置文件mybatis-config.xml(一)
- Ibatis学习总结3--SQL Map XML 映射文件
- ANDROID基础学习笔记_4.1_采用pull解析xml文件
- Androidx学习笔记(34)---新闻客户端之获取新闻xml文件并解析
- Solr的学习使用之(二)schema.xml等配置文件的解析
- sax解析xml文件过程总结
- 学习用pull解析解析xml文件
- Ibatis学习总结2--SQL Map XML 配置文件
- Android 个人学习笔记之---SAX解析XML文件
- Android 解析XML 文件的四种方法总结