《xml基础及实践开发教程》第十章

《xml基础及实践开发教程》第十章

ID:40002284

大小:331.81 KB

页数:25页

时间:2019-07-17

《xml基础及实践开发教程》第十章_第1页
《xml基础及实践开发教程》第十章_第2页
《xml基础及实践开发教程》第十章_第3页
《xml基础及实践开发教程》第十章_第4页
《xml基础及实践开发教程》第十章_第5页
资源描述:

《《xml基础及实践开发教程》第十章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、XML第十章SAX《XML基础及实践开发教程》本章学习目标了解:SAX的基础知识熟练掌握:SAX的工作机制理解:SAX接口和类熟练掌握:SAX常用接口和类的使用SAX概述SAX-SimpleAPIforXML,既是指一种接口,也是指一个软件包。基于事件来解析XML方案的典型代表SAX开始于1997年12月,由一些在互联网上分散的程序员合作进行。后来,参与开发的程序员越来越多,组成了互联网上的XML-DEV社区。1998年5月,SAX1.0由XML-DEV正式发布。目前最新的版本是2.0,但是两者多处不兼容。Java

2、SE中的JAXP提供了对SAX2的支持SAX工作原理SAX的工作原理简单的说就是对文档进行顺序扫描,当扫描档文档的开始与结束、元素的开始与结束等处都会通知事件处理函数、由事件处理函数做相应动作,然后继续同样的扫描,直至文档结束。SAX的处理机制张三19文档开始元素开始字符数据(空白)元素开始()字符数据(张三)元素结束()字符数据(空白)元素开始(

3、)字符数据(18)元素结束()字符数据(空白)元素结束文档结束SAX的优缺点SAX的优点:解析速度快内存消耗少ContentHandler对象可以并行SAX的缺点:必须实现时间处理程序不能随机访问不能修改文档SAX实现产生的事件类型以下为大多数SAX实现都会产生的事件:1.文档的开始和结束时出发文档处理事件2.在文档内每一XML元素接受解析的前后触发元素事件3.任何元数据通常由单独的事件交付4.在处理文档的DTD或Schema时产生DTD或Schema事件5.产生错误事件用

4、来通知主机应用程序解析错误。SAX接口JDK的SAXAPI分布在org.xml.sax包、org.xml.sax.ext包、org.xml.sax.helpers包重要的接口和类:XMLReader:代表了SAX2解析器,它是一个所有的SAX2解析器都必须实现的接口允许应用程序设置和查询解析器的特性和解析属性注册事件处理器启动文档解析ContentHandler:负责向应用程序反馈与文档相关的基本的解析事件DTDHandlerErrorHandlerContentHandlerContentHandler是Java

5、包中一个特殊的SAX接口,位于org.xml.sax包中。该接口封装了一些对事件处理的方法,当XML解析器开始解析XML输入文档时,它会遇到某些特殊的事件,比如文档的开头和结束、元素的开头和结束、以及元素中的字符数据等事件。当遇到这些事件时,XML解析器会调用ContentHandler接口中相应的方法来响应该事件。ContentHandlerContentHandler接口中的方法:voidstartDocument()voidendDocument()voidstartElement(Stringuri,Str

6、inglocalName,StringqName,Attributesatts)voidendElement(Stringuri,StringlocalName,StringqName)voidcharacters(char[]ch,intstart,intlength)DTDHandlerDTDHandler用于接收基本的DTD相关事件的通知。该接口位于org.xml.sax包中。此接口仅包含DTD事件的注释和未解析的实体声明部分。SAX解析器可以按任意顺序报告这些事件,而不管声明注释和未解析实体时所采用的顺序。

7、但是,必须在文档处理程序的startDocument()事件之后,在第一个startElement事件之前报告所有的DTD事件DTDHandlerDTDHandler接口包括以下两个方法:接收注释声明事件的通知publicvoidnotationDecl(Stringname,StringpublicId,StringsystemId)throwsSAXException{}接收未解析的实体声明事件的通知publicvoidunparsedEntityDecl(Stringname,StringpublicId,S

8、tringsystemId,StringnotationName)throwsSAXException{}EntityResolverEntityResolver接口用于解析实体的基本接口,该接口位于org.xml.sax包中。该接口只有一个方法:允许应用程序解析外部实体。并返回一个InputSource类的对象或者null,用于读取实体信息。publicI

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。