- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
理解SAX
理解SAX
1教程简介
1.1谁应该学习本教程?
本教程探讨 Simple API for XML 2.0.x 版(或 SAX 2.0.x)的使用。它针对的是如下开发人员,他们理解 XML,并且希望学习这个用于操作 XML 数据的轻量级的、基于事件的 API。 这里假设读者熟悉诸如格式良好性和 XML 文档的类标签性质等概念。(如果有必要,您可以通过 XML 入门 教程了解 XML 本身的基础知识。)在本教程中,您将学习如何使用 SAX 来检索、操作和输出 XML 数据。
先决条件:DOM 在许多编程语言中可用,比如 Java、C++、Perl 和 Python。本教程使用 Java 语言来作说明,不过这些概念实际上在所有语言中都是类似的,而且您不需实际运行这些例子,就能获得对 SAX 的彻底理解。
1.2 SAX 是什么?
用于读取和操作 XML 文件的标准是文档对象模型(Document Object Model,DOM)。 遗憾的是,DOM 方法涉及读取整个文件并将该文件存储在一个树结构中,而这样可能是低效的、缓慢的,并且很消耗资源。
一种替代技术就是 Simple API for XML,或称为 SAX。SAX 允许您在读取文档时处理它,从而不必等待整个文档被存储之后才采取操作。
SAX 是由 XML-DEV 邮件列表的成员开发的,对应的 Java 版本现在是一个 SourceForge 项目(请参阅参考资料)。该项目的目的是为 XML 的使用提供一种更自然的手段 ―― 换句话说,也就是不涉及 DOM 所必需的开销和概念跳跃。
项目的成果是一个基于事件的 API。解析器向一个事件处理程序发送事件,比如元素开始和元素结束,而事件处理器则处理该信息。然后应用程序本身就能够处理该数据。原始的文档仍然保留完好无损,但是 SAX 提供了操作数据的手段,而后数据可以引入另一个进程或文档。
SAX 没有官方的标准机构;它不由万维网联盟(Wide Web Consortium,W3C)或其他任何官方机构维护,但它是 XML 社区事实上的标准。
1.3工具
本教程中的例子(您应该试验一下它们)需要安装以下工具,并确保它们能正确地工作。运行这些例子并不是理解本教程所必需的。
文本编辑器:XML 文件不过就是文本文件。为创建和读取它们,您所需要的就是一个文本编辑器。
JavaTM 2 SDK,Standard Edition 1.4.x 版: SAX 支持已内置到最新版本的 Java 技术中(可从/j2se/1.4.2/download.html 获得),因此您不需要安装任何单独的类。如果您在使用旧版本的 Java,比如 Java 1.3.x,您还需要一个 XML 解析器,比如 Apache 项目的 Xerces-Java(可从/xerces2-j/index.html获得),或者 Sun 的 Java API for XML Parsing(JAXP),它是 Java Web 服务开发包的一部分(可从/webservices/downloads/webservicespack.html获得)。您还可以下载来自 SourceForge 的官方版本(可从/project/showfiles.php?group_id=29449获得)。
其他语言:如果希望改编这些例子,SAX 实现也可在其他编程语言中使用。您可以在 /?selected=langs 找到关于 C、C++、Visual Basic、Perl 和 Python 实现的信息。
1.4关于作者
Nicholas Chase 是Studio B 的作者,曾经参与包括 Lucent Technologies、Sun Microsystems、Oracle 和 Tampa Bay Buccaneers 在内的多家公司的 Web 站点开发。 Nick 曾是一名高中物理教师、低级放射性废物设施管理人员、在线科幻小说杂志编辑、多媒体工程师和 Oracle 讲师。 最近,他是佛罗里达州 Clearwater 的 Site Dynamics Interactive Communications 的首席技术官。他写了四本有关 Web 开发的书,包括 XML Primer Plus (Sams)。他乐于倾听读者的意见,可以通过 nicholas@ 与他联系。
2 DOM、SAX以及何时哪个更适合
2.1 SAX 处理是如何工作的
SAX 在读取 XML 流的同时处理它们,这很像以前的自动收报机纸带(ticker tape)。请考虑下面的 XML 代码片断:
?xml version=1.0?
samples
serverUNIX/server
monitorcolor/monitor
/s
您可能关注的文档
- 王宏建 艺术概论试题.doc
- 王牌店长-经理十项全能训练.ppt
- 王维诗全集 繁体竖排.doc
- 泌尿外科、男科概述.ppt
- 玖龙纸业汽轮机飞车事故图片.doc
- 泡菜的加工制作说课.ppt
- 王阳明的心学(PPT-50).ppt
- 泥工制作.ppt
- 泌尿系症状诊断学.ppt
- 泌尿系统疾病病人的护理概述课件-泌尿系统疾病病人的护理.ppt
- 高中数学课堂中创新思维培养的案例分析与策略优化教学研究课题报告.docx
- 中小学校智慧校园智能学习环境构建成本控制与效益提升策略研究教学研究课题报告.docx
- 基于物联网的设施农业环境智能调控技术在农业自动化生产中的应用教学研究课题报告.docx
- 初中历史实验实践课:AI辅助下的历史事件重现与实验教学研究教学研究课题报告.docx
- 数字化学习环境下小学生学习习惯评价方法与效果研究教学研究课题报告.docx
- 基于物联网的智慧校园学习环境构建与学习效果评价体系构建研究教学研究课题报告.docx
- 《政策支持视角下环保企业绿色技术创新路径优化研究》教学研究课题报告.docx
- 人造卫星专题发射回收变轨.ppt
- 高中音乐:太阳能热水器效能影响因素的音乐演奏实践报告教学研究课题报告.docx
- 小组工作介入社区儿童安全教育的实务研究——以C社区“护童成长”小组为例.docx
文档评论(0)