下载此文档

第7章基于SAX的解析器.ppt


文档分类:IT计算机 | 页数:约28页 举报非法文档有奖
1/28
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/28 下载此文档
文档列表 文档介绍
第7章基于SAX的解析器
SAX解析器
SAX(Simple API for XML)即简易应用程序编写接口。
SAX解析器的核心:事件处理机制。
使用SAX解析器来获取XML文件的信息。
DOM解析器和SAX解析器不同
DOM解析器
核心 在内存中建立和XML对应的树状结构数据
SAX解析器
核心 事件处理机制
SAX解析器在解析XML的过程中,根据从文件中解析出的数据产生相应的事件,并报告这个事件给事件处理器,事件处理器处理相应数据。
本章主要内容
SAX解析器及工作原理
SAX常用的接口及事件处理类
SAX对XML文档数据获取及基本操作
包括:文件的开始与结束 XML的处理指令
开始标记与结束标记文本数据
处理空白名称空间
实体文件定位器
处理错误
SAX解析器工作原理
在应用程序中创建一个对象来对应相应的XML文档。也创建一个文档处理器以告知解析器使用哪个文档处理器,告知解析器开始处理特定的输入文档(通过调用解析器的parser()方法)。解析器的作用是把它在文档中找到的所有感兴趣的内容通报给文档处理器,例如元素的起始和结束标签。文档处理器的作用是处理这些通报以获取应用程序需要的所有内容。
SAX解析器构成的框架
SAXParserFactory
XML
文件
SAX
Parser
Document
Handler
Error
Handler
DTD
Handler
Entity
Handler
parse(File f, DefaultHandler db)
使用SAX解析器的步骤
1 ( )实例化一个SAXParserFactor对象:
SAXParserFactory factory= SAXParserFactory. newInstance( );
2 Factory对象调用newSAXParser( )方法返回一个SAXParser对象(称作SAX解析器):
SAXParser saxParser=factory. newSAXParser( );
如果想要SAXParserFactory产生的SAX解析器支持名称空间,可以让factory对象调用setNamespaceAware(boolean b) 方法:
(true);
事件处理器
3 创建解析器后,SAX解析器调用以下parse( )方法解析XML文件
Public void parse(File f,DefaultHandler dh) throws SAXExceptions,IOExeception
Public void parse(InputStream is ,DefaultHandler dh) throws SAXExceptions,IOExeception
Public void parse(String uri,DefaultHandler dh) throws SAXExceptions,IOExeception
Public void parse(String uri) throws SAXExceptions,IOExeception
异常列表
解析器的事件处理器,.,该类或其子类的对象被称作解析器的事件处理器。它实现了ContenHander,DTDHander,EntiyResolver,ErrorHander。
事件处理器
4 事件处理器根据相应事件调用相应的方法。
例如:当解析器发现一个标记的开始标记时,将所发现的数据封装为一个“标记开始事件”,并报告该事件给事件处理器,事件处理器应会知道所发生的事件,然后调用:
startElement(String uri,String locaName ,String qName,Attributes atts)
标记名称空间
标记的名称
带名称空间前缀的标记名称
标记的全部属性
SAX处理文件的开始与结束
当解析器开始解析XML文档过程中,若解析到该文档的开始,应会向事件处理器发送一个“文件开始”事件,事件处理器接受该事件,并调用相应startDocument( )方法处理该事件。之后,其它事件才会开始触发,如“开始标记”、“文本事件”等。在文件的结尾,又向事件处理器发送一个“文件结束”事件,事件处理器就会调用endDocument( )方法来处理。

第7章基于SAX的解析器 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
最近更新