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

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章基于SAX的解析器讲述

第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 使用Java.xml.parsers包中的SAXParserFactory类调用其类方法newInstance( )实例化一个SAXParserFactor对象: SAXParserFactory factory= SAXParserFactory. newInstance( ); 2 Factory对象调用newSAXParser( )方法返回一个SAXParser对象(称作SAX解析器): SAXParser saxParser=factory. newSAXParser( ); 如果想要SAXParserFactory产生的SAX解析器支持名称空间,可以让factory对象调用setNamespaceAware(boolean b) 方法: factory.setNamespaceAware(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 异常列表 解析器的事件处理器,DefaultHandler类是org.xml.sax.helpers包中的类,该类或其子类的对象被称作解析器的事件处理器。它实现了ContenHander,DTDHander,EntiyResolver,ErrorHander。 事件处理器 4 事件处理器根据相应事件调用相应的方法。 例如 :当解析器发现一个标记的开始标记时,将所发现的数据封装为一个“标记开始事件”,并报告该事件给事件处理器,事件处理器应会知道所发生的事件,然后调用: startElement(String uri,String locaName ,String qName,Attributes atts) 标记名称空间 标记的名称 带名称空间前缀的标记名称 标记的全部属性 SAX处理文件的开始与结束 当解析器开始解析XML文档过程中,若解析到该文档的开始,应会向事件处理器发送一个“文件开始”事件,事件处理器接受该事件,并调用相应startDocument( )方法处理该事件。之后

您可能关注的文档

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档