XML 可扩充标记语言
除了SAX(逐行扫描解析 操作稍显复杂 向文档添删内容不便)
DOM方式(树 缺点:大数据性能不好) (听说还有PULL)
1 什么是SAX
Simple API for XML 一种接口 也是一个软件包
作为接口 SAX是事件驱动型XML解析的一个标准接口
2 SAX的基本原理
对文档顺序扫描 扫描到文档开始结束,元素开始结束等地方时通知事件处理函数
例如:
文档开始结束时触发文档处理事件
在文档内的每个XML元素接受解析前后触发元素事件
任何元数据通常都由单独的事件交互
在处理文档的DTD或Schema时产生DTD或Schema事件
产生错误事件用来通知主机应用程序解析错误
SAX模型(图)
eg:
<doc>
<para>hello,world</para>
</doc>
start document
start element:doc
start element:para
characters:hello,world
endelement:para
start element:doc
end document
3 SAX常用接口
ContentHandler接口
Java类包中特殊的SAX接口 封装了一些对事件处理的方法 当遇到事件 就会调用响应方法响应
比如:void startDocument() void endElements(String uri,String localName,String qName)等
4 SAX解析
解析文档过程
创建事件处理程序
创建SAX解析器
将事件处理程序分配给解析器
对文档进行解析,将每个事件发送给处理程序
//创建一个SAXParserFactory
SAXParserFactory factory=SAXParserFactory.newInstance();
XMLReader reader=factory.newSAXParser().getXMLReader();
//为XMLReader设置内容处理器
reader.setContentHandler(new MyContentHandler());
这里的MyContentHandler类为继承DefaultHandler(适配器模式 所以不是实现ContentHandler接口)的类
//开始解析文件
reader.parse(new InputSource(new StringReader(resultStr)));//resultStr为要解析的字符串
把自己要的解析工作代码写在响应的方法内(MyContentHandler)
分享到:
相关推荐
www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码 SAX解析XML xml 源码(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)
本篇文章将重点讨论Android中的SAX(Simple API for XML)解析器,这是一种事件驱动的解析方法,适合处理大文件或内存有限的设备。 ### SAX解析原理 SAX解析器以流式方式读取XML文档,遇到元素、属性等结构时会触发...
SAX(Simple API for XML)是XML解析的一种方法,主要适用于处理大型XML文档,因为它采用事件驱动模型,以流式读取XML数据,不会一次性加载整个文档到内存,从而节省资源。 SAX解析的基本工作原理是:当解析器读取...
这个“IOS应用源码——XML解析.zip”文件包含了一个iOS应用程序的源代码,专注于XML数据的解析。理解XML解析在iOS应用开发中的作用以及如何在Objective-C或Swift中实现这一功能,对于提升iOS开发技能至关重要。 ...
6. **SAX(Simple API for XML)**:基于事件驱动的解析器,适用于处理大型XML文档,因为它不将整个文档加载到内存中。 XML_04+05.pdf可能涉及XML在实际应用中的技术,如: 1. **XPath**:查询XML文档中特定节点的...
一个项目同时用dom解析和sax解析xml文件貌似会报错,项目框架建一直是用sax和dom4j解析xml文件的。当我用dom解析xml文件。导入包后就报错识别不了xml文件的编码格式。于是做了一个sax解析xml文件的实例
Android Mars项目中的视频代码涉及到XML源码的解析,这对于我们理解XML在Android应用中的作用至关重要。 XML文档结构分为声明、元素、属性、文本内容、注释等部分。在Android中,XML文件主要有以下几种类型: 1. *...
在Android中,有三种主要的XML解析方式:SAX(Simple API for XML)、DOM(Document Object Model)和Pull Parser。下面将详细介绍这三种解析方式,并结合person类的实例进行讲解。 1. SAX解析: SAX是一种事件驱动...
SAX(Simple API for XML)是XML解析的一种方法,它以事件驱动的方式处理XML文档,非常适合处理大体积的XML文件,因为它不需要一次性加载整个文件到内存,而是逐行读取,因此节省了资源。 **SAX解析XML的基本原理:...
本文将深入探讨XML解析中的SAX(Simple API for XML)解析方法,并结合一个具体的Android 4.0网络编程示例进行详细讲解。 SAX解析是一种基于事件驱动的解析方式,它不会一次性加载整个XML文档到内存,而是逐行读取...
SAX是一种事件驱动的XML解析器,它不会像DOM解析器那样将整个XML文档加载到内存中,而是逐行读取,遇到每个元素或属性时触发相应的事件回调。这种方式节省了内存,特别适合处理大型XML文件。 1. **SAX解析的基本...
SAX(Simple API for XML)是XML解析的一种方式,它采用事件驱动模型,适用于处理大型XML文档,因为它不需要将整个文档加载到内存中。本文将深入探讨如何使用SAX解析XML并获取元素的值或内容。 首先,SAX解析器以...
SAX(Simple API for XML)是XML解析器的一种,它采用事件驱动的方式对XML文档进行解析,而不是一次性加载整个文档到内存中,因此在处理大型XML文件时,SAX解析器具有较高的性能和较低的内存消耗。 标题“sax解析...
本压缩包文件“XML-java.rar”包含了关于使用Java解析XML的实例,特别强调了SAX解析器的使用,并且提到了使用JDOM和JOM4J这两个Java库来处理XML。 1. **DOM解析**:DOM是一种树型结构,它将整个XML文档加载到内存中...
在C语言环境中,处理XML文件时,通常有两种主要的解析模式:DOM(Document Object Model)和SAX(Simple API for XML)。 **DOM解析模式**: DOM解析器将整个XML文档加载到内存中,创建一个树形结构,即文档对象...
4. **SAX解析**:与DOM不同,SAX解析器不将整个XML文档加载到内存,而是通过事件回调函数处理每个元素的开始和结束、处理属性等。在易语言中,我们需要定义一系列的事件处理函数,如`开始文档`、`结束文档`、`开始...
2. **SAX解析器**:Simple API for XML (SAX) 是一种事件驱动的解析模型,适合处理大型或资源受限的环境。当解析器遇到XML文档中的元素、属性等时,会触发相应的事件回调,而不会将整个文档加载到内存。 3. **XML ...
SAX(Simple API for XML)是XML解析的一种方式,它以事件驱动的方式处理XML文档,适用于处理大型XML文件,因为它不需要一次性加载整个文档到内存中。 在SAX解析中,XML文档被读取一次,遇到特定的元素、属性或其他...
- **适合解析简单结构的XML**:对于结构复杂、嵌套深度大的XML,Pull解析可能不如DOM或SAX解析直观。 在实际开发中,如Android的布局文件解析、配置文件读取或者从网络获取XML数据时,都可以使用Pull解析器进行处理...
SAX(Simple API for XML)是一种基于事件驱动的XML解析器,适用于处理大型XML文档,因为它不会将整个文档加载到内存中。 标题中提到的"XML通过SAX解析为JSON格式"是指使用SAX解析器来读取XML文档,并将其转换成...