版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四卷:
XML解析器
简单XML应用程序编程接口
(SAX)
第四卷:XML解析器
简单XML应用程序编程接口
(SA2回顾DOM是一组独立于语言和平台的应用程序编程接口,描述如何访问和操纵存储在结构化XML文档中的信息DOM可以表示树状结构了解W3C为DOM提供一系列API,以供应用程序调用掌握DOMAPI的核心接口对结点的操作包括读取、添加、删除、替换和创建,掌握用java实现这些操作的方法2回顾DOM是一组独立于语言和平台的应用程序编程接口,描述如23目标描述SAX的基本内容描述SAX的事件驱动模型解释SAX解析器是如何工作的列出SAX接口并描述相关的方法与DOM之间的比较3目标描述SAX的基本内容34基本知识SAX解析器的特征
SAX(SimpleAPIforXML)是一种采用流式Streaming机制读取并分析XML文档的工具。将其解析所得的元素与属性、文本内容、注释等信息作为“事件”顺序地抛出,交由处理程序来处理。特征1.基于事件处理,这与DOM将整个文档加载到内存后再处理有很大区别;2.在处理大型文档时,SAX将其化整为零,一般就只有一个元素或文本结点保存在内存中,让事件处理程序处理。处理完毕后,释放该元素或结点占用的内存。
3.随时中断处理;
4.只读只进的SAX与随机存取的DOM4基本知识SAX解析器的特征1.基于事件处理,这与DOM将整45SAX接口UML类图XMLReader(读取文档)getContentHandler()setCOntentHandler()getEntityResolver()setEntityResolver()getDTDHandler()setDTDHandler()getErrorHandler()setErrorHandler()Parse()ContentHandler(处理内容)startDocument()endDocument()startPrefixMapping()endPrefixMapping()startElement()endElement()characters()processingInstruction()Attributes(属性)getValue()getURI()getLocalName()getRawName()getType()getLength()DeclHandler(处理声明)elementDecl()attributeDecl()internalEntityDecl()externalEntityDecl()EntityResolver(解析实体)resolveEntity()DTDHandler(处理DTD)notationDecl()unparsedEntityDecl()ErrorHandler(处理文档错误)warning()error()fatalError()5SAX接口UML类图XMLReaderContentHan56SAX接口整个SAX以XMLReader接口为中心,读取器在执行parse方法时分析文档,自动调用其依赖的ContentHandler、DeclHandler、LexicalHandler、EntityResolve和ErrorHandler接口就是SAX的事件处理器。使用SAX处理文档的要点一般如下:①创建XMLReader实例,通常使用XMLReaderFactory类的createXMLReader方法生成XMLReader接口实例。②实现SAX的事件处理器:在程序中定义新的类,该类实现处理内容所需的接口。③绑定处理器:创建事件处理器的实例,用XMLReader实例的setContentHandler等方法将其绑定到XMLReader中④分析文档:调用XMLReader中的parse方法,开始分析文档⑤实现事件处理器的具体功能
⑥终止处理:程序抛出SAXException(无论是否读完XML文档)6SAX接口整个SAX以XMLReader接口为中心,读取67使用Java创建SAX示例编写SAX程序将上述的XML文档解析7使用Java创建SAX示例编写SAX程序将上述的XML文档78代码自定义类继承DefaultHandler,该类实现ContentHandler接口通过工厂生成XMLReader,用setContentHandler方法绑定事件处理器类saxtest,利用parse方法解析文档startDocument方法在开始分析文档时,自动调用endDocument()方法在文档末尾时,自动调用startElement()方法在读取元素开始标记时调用endElement()方法在读取元素结束标记时调用8代码自定义类继承DefaultHandler,该类实现Co89代码遇到文本内容时调用该方法9代码遇到文本内容时调用该方法910运行结果解析结果10运行结果解析结果1011运行过程①在文档开头,解析器调用ContentHandler中的startDocument方法②遇到元素开始标记时,调用ContentHandler中的startElement方法,读取其文本内容调用ContentHandler中的characters方法处理内容,然后遇到元素的结束标记调用ContentHandler中的endElement方法。③到达文档结尾,调用ContentHandler中的endDocument方法④解析器从parse方法返回到调用程序,调用程序的其它代码,程序结束。11运行过程①在文档开头,解析器调用ContentHandl1112应用如果要解析XML文档中的DOCTYPE,实现以下接口DeclHandler接口实现接口DeclHandler处理DOCTYPE绑定事件处理器处理DOCTYPE12应用如果要解析XML文档中的DOCTYPE,实现以下接口1213DeclHandler接口代码在遇到DTD中声明的属性列表ATTLIST时,对其中定义的各个属性一一调用此方法在遇到DTD中声明的元素ELEMENT时,调用此方法实现DeclHandler接口中的所有方法13DeclHandler接口代码在遇到DTD中声明的属性列1314运行结果结果teams.dtd14运行结果结果teams.dtd1415应用如果要解析XML文档的版本声明获取XML版本15应用如果要解析XML文档的版本声明获取XML版本1516运行结果16运行结果1617SAX接口参考XMLReader接口注册相应处理器17SAX接口参考XMLReader接口注册相应处理器1718解析器属性Property解析器的属性名称以URL的形式定义,以/sax/properties/开头,后面跟上一个标识符,其属性值是Object类型实现DeclHandler接口18解析器属性Property解析器的属性名称以URL的形式1819ContentHandler接口内容处理器用于处理XML文档中最重要的元素和文本内容,使用XMLReader接口的setContentHandler方法将其注册到解析器中19ContentHandler接口内容处理器用于处理XML1920Attributes接口属性列表被作为参数传入到ContentHandler接口的startElement回调函数。20Attributes接口属性列表被作为参数传入到Cont2021代码分析-1参数类型21代码分析-1参数类型2122DeclHandler接口声明处理器用于处理DTD中声明的元素和属性。使用XMLReader接口的”setProperty”注册声明处理器22DeclHandler接口声明处理器用于处理DTD中声明2223代码分析-223代码分析-22324DefaultHandler类默认处理器该类实现了上述ContentHandler、EntityResolver、DTDHandler和ErrorHandler这四个处理器接口。通常,使用该类的继承,导入包importorg.xml.sax.helpers24DefaultHandler类默认处理器2425DefaultHandler类25DefaultHandler类2526DOM与SAX的比较SAX是基于事件处理回调SAX的执行速度快,不占用过多的内存对于SAX,实现DefaultHandler接口中的方法,在解析过程中会有大量回调方法的使用,DOM不存在回调对于小文档DOM适用,大文档SAX适用SAX适于只读XML,而DOM可以涉及更新XML26DOM与SAX的比较SAX是基于事件处理回调2627总结描述SAX的基本内容描述SAX的事件驱动模型解释SAX解析器是如何工作的列出SAX接口并描述相关的方法与DOM之间的比较27总结描述SAX的基本内容2728课堂测验试编写一段SAX程序,遍历上述的XML文档Test.xml28课堂测验试编写一段SAX程序,遍历上述的XML文档Tes28态度决定命运,专注成就人生!Thanks!第10讲-简单XML应用程序编程接口(SAX)(SN3005XML10)课件29第四卷:
XML解析器
简单XML应用程序编程接口
(SAX)
第四卷:XML解析器
简单XML应用程序编程接口
(SA31回顾DOM是一组独立于语言和平台的应用程序编程接口,描述如何访问和操纵存储在结构化XML文档中的信息DOM可以表示树状结构了解W3C为DOM提供一系列API,以供应用程序调用掌握DOMAPI的核心接口对结点的操作包括读取、添加、删除、替换和创建,掌握用java实现这些操作的方法2回顾DOM是一组独立于语言和平台的应用程序编程接口,描述如3132目标描述SAX的基本内容描述SAX的事件驱动模型解释SAX解析器是如何工作的列出SAX接口并描述相关的方法与DOM之间的比较3目标描述SAX的基本内容3233基本知识SAX解析器的特征
SAX(SimpleAPIforXML)是一种采用流式Streaming机制读取并分析XML文档的工具。将其解析所得的元素与属性、文本内容、注释等信息作为“事件”顺序地抛出,交由处理程序来处理。特征1.基于事件处理,这与DOM将整个文档加载到内存后再处理有很大区别;2.在处理大型文档时,SAX将其化整为零,一般就只有一个元素或文本结点保存在内存中,让事件处理程序处理。处理完毕后,释放该元素或结点占用的内存。
3.随时中断处理;
4.只读只进的SAX与随机存取的DOM4基本知识SAX解析器的特征1.基于事件处理,这与DOM将整3334SAX接口UML类图XMLReader(读取文档)getContentHandler()setCOntentHandler()getEntityResolver()setEntityResolver()getDTDHandler()setDTDHandler()getErrorHandler()setErrorHandler()Parse()ContentHandler(处理内容)startDocument()endDocument()startPrefixMapping()endPrefixMapping()startElement()endElement()characters()processingInstruction()Attributes(属性)getValue()getURI()getLocalName()getRawName()getType()getLength()DeclHandler(处理声明)elementDecl()attributeDecl()internalEntityDecl()externalEntityDecl()EntityResolver(解析实体)resolveEntity()DTDHandler(处理DTD)notationDecl()unparsedEntityDecl()ErrorHandler(处理文档错误)warning()error()fatalError()5SAX接口UML类图XMLReaderContentHan3435SAX接口整个SAX以XMLReader接口为中心,读取器在执行parse方法时分析文档,自动调用其依赖的ContentHandler、DeclHandler、LexicalHandler、EntityResolve和ErrorHandler接口就是SAX的事件处理器。使用SAX处理文档的要点一般如下:①创建XMLReader实例,通常使用XMLReaderFactory类的createXMLReader方法生成XMLReader接口实例。②实现SAX的事件处理器:在程序中定义新的类,该类实现处理内容所需的接口。③绑定处理器:创建事件处理器的实例,用XMLReader实例的setContentHandler等方法将其绑定到XMLReader中④分析文档:调用XMLReader中的parse方法,开始分析文档⑤实现事件处理器的具体功能
⑥终止处理:程序抛出SAXException(无论是否读完XML文档)6SAX接口整个SAX以XMLReader接口为中心,读取3536使用Java创建SAX示例编写SAX程序将上述的XML文档解析7使用Java创建SAX示例编写SAX程序将上述的XML文档3637代码自定义类继承DefaultHandler,该类实现ContentHandler接口通过工厂生成XMLReader,用setContentHandler方法绑定事件处理器类saxtest,利用parse方法解析文档startDocument方法在开始分析文档时,自动调用endDocument()方法在文档末尾时,自动调用startElement()方法在读取元素开始标记时调用endElement()方法在读取元素结束标记时调用8代码自定义类继承DefaultHandler,该类实现Co3738代码遇到文本内容时调用该方法9代码遇到文本内容时调用该方法3839运行结果解析结果10运行结果解析结果3940运行过程①在文档开头,解析器调用ContentHandler中的startDocument方法②遇到元素开始标记时,调用ContentHandler中的startElement方法,读取其文本内容调用ContentHandler中的characters方法处理内容,然后遇到元素的结束标记调用ContentHandler中的endElement方法。③到达文档结尾,调用ContentHandler中的endDocument方法④解析器从parse方法返回到调用程序,调用程序的其它代码,程序结束。11运行过程①在文档开头,解析器调用ContentHandl4041应用如果要解析XML文档中的DOCTYPE,实现以下接口DeclHandler接口实现接口DeclHandler处理DOCTYPE绑定事件处理器处理DOCTYPE12应用如果要解析XML文档中的DOCTYPE,实现以下接口4142DeclHandler接口代码在遇到DTD中声明的属性列表ATTLIST时,对其中定义的各个属性一一调用此方法在遇到DTD中声明的元素ELEMENT时,调用此方法实现DeclHandler接口中的所有方法13DeclHandler接口代码在遇到DTD中声明的属性列4243运行结果结果teams.dtd14运行结果结果teams.dtd4344应用如果要解析XML文档的版本声明获取XML版本15应用如果要解析XML文档的版本声明获取XML版本4445运行结果16运行结果4546SAX接口参考XMLReader接口注册相应处理器17SAX接口参考XMLReader接口注册相应处理器4647解析器属性Property解析器的属性名称以URL的形式定义,以/sax/properties/开头,后面跟上一个标识符,其属性值是Object类型实现DeclHandler接口18解析器属性Property解析器的属性名称以URL的形式4748ContentHandler接口内容处理器用于处理XML文档中最重要的元素和文本内容,使用XMLReader接口的setContentHandler方法将其注册到解析器中19ContentHandler接口内容处理器用于处理XML4849Attributes接口属性列表被作为参数传入到ContentHandler接口的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人防设备供货及安装分合同
- 无人机电子技术基础课件 8.5 数据选择器
- 2026年国开电大建筑构造形考考试题库【完整版】附答案详解
- 2026年特种设备无损检人员通关检测卷及参考答案详解(B卷)
- 2026及未来5年中国注液机数据监测研究报告
- 2026年幼儿园甜甜的植物
- 2026年备课大师网幼儿园
- 2026年幼儿园脸谱介绍
- 2025福建福州市仓山区国有投资发展集团有限公司招聘1人笔试参考题库附带答案详解
- 2025福建海峡企业管理服务有限公司南平分公司招聘笔试参考题库附带答案详解
- “双减”背景下中小学作业数字化管理模式探究
- 2025人教版(2024)小学美术一年级下册教学计划、教学设计及教学反思(附目录)
- 医生独立值班申请书
- 草料购买合同范例
- 【川教版】《生命 生态 安全》五下全册课件
- 2023年泸州市泸县选调机关事业单位人员考试真题
- 《世界地理-撒哈拉以南的非洲》备课讲稿
- 2024年江苏省南京市水务所属事业单位招聘5人历年高频考题难、易错点模拟试题(共500题)附带答案详解
- 110kV主变压器订货技术协议
- 佛教基础知识正果法师
- 2021年景德镇陶瓷大学本科招生专业
评论
0/150
提交评论