使用 SAX 处理 XML 文档教材.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
这里我将向大家介绍处理 XML 文档的另一个重要接口 SAX(Simple API for XML)。其中包括它的基本情况,它的 API,一个开发实例,实际开发中一些需注意的问题,以及它与 DOM 的对比。 SAX的基本情况 SAX同DOM一样也是一个访问XML文档的接口。SAX是Simple API for XML的缩写。它不像DOM那样是W3C的推荐标准。它是由XML-DEV邮件列表的成员开发维护,由David Megginson领导(david@)的一个Public Domain软件。SAX是一个彻底的自由软件,它的作者放弃了对它的所有权利,并且它也被许可用于任何目的(在文章最后附录了它的版权声明)。 到现在为止SAX的版本已经发展到2.0。在这个最新版本中增加了对名称空间(Namespaces)的支持,而且可以通过对features以及properties的设置来对解析器做全面的配置,这其中包括设置解析器是否对文档进行有效性验证,以及怎样来处理带有名称空间的元素名称等。SAX1中的接口已经不再使用??,这里只会讨论有关SAX2的开发。在本文中提到SAX只是指SAX 2。另外,本文的所有例子都是用java编写,SAX解析器也使用的是JAVA版本。 像DOM一样,SAX并不是一个实际可以使用的XML文档解析器,而是其他兼容SAX的解析器要实现的接口和帮助类的集合。如果你想使用SAX的话,你必须满足下面的要求: 系统中包含Java 1.1 或者更高版本。 在Java classpath中包含进你的SAX类库。 在Java classpath中包含进你要使用的兼容SAX的XML解析器类库。 实现了SAX的解析器有很多,比如Apache的Xerces,Oracle的XML Parser等等。在本文中的例子程序使用的都是Xerces解析器,你可以从 得到它。让我们下载得到xerces.jar文件然后将其加入到classpath中去,这样我们就已经建立好环境(在xerces.jar中已经包含了SAX接口,所以不必特意再去寻找SAX类库)。 在SAX API中有两个包,org.xml.sax和org.xml.sax.helper。其中org.xml.sax中主要定义了SAX的一些基础接口,如XMLReader、ContentHandler、ErrorHandler、DTDHandler、EntityResolver等。而在org.xml.sax.helper中则是一些方便开发人员使用的帮助类,如缺省实现所有处理器接口的帮助类DefaultHandler、方便开发人员创建XMLReader的XMLReaderFactory类等等。在这两个包中还有一些应用于SAX1的接口,同时还有几个类它们只是为了便于将在SAX1上开发的应用移植到SAX2上,在这篇文章中就不涉及了。下面是我们要关注的接口和类: Package org.xml.sax 介绍 Interfaces 接口 Attributes定义了一个属性列表接口,供访问元素的属性列表而用。ContentHandler处理解析文档内容时产生的事件。DTDHandler处理解析DTD时的相应事件。EntityResolver处理外部实体。ErrorHandler处理解析过程中所遇到的文档错误事件。Locator为了定位解析中产生的内容事件在文档中的位置而准备的一个定位器接口。XMLFilter提供了一个方便应用开发的过滤器接口。XMLReader任何兼容SAX2的解析器都要实现这个接口,这个接口让应用程序可以设置或查找features和properties,注册各种事件处理器,以及开始解析文档。Classes InputSource为XML实体准备的输入源。Exceptions SAXException包装了一般的SAX错误和警告。SAXNotRecognizedException为识别不出某些标识而抛出的异常。SAXNotSupportedException为不支持某个操作而抛出的异常。SAXParseException包装了一个关于XML解析的错误或者警告。 Package org.xml.sax.helpers 帮助类所在的包 Classes 类 AttributesImpl对Attributes接口的缺省实现NamespaceSupport提供名称空间支持。DefaultHandler缺省实现了四个处理器接口,方便用户开发,在开发过程中会经常用到。LocatorImpl提供了一个对Locator接口的实现XMLFilterImpl对过滤器接口

文档评论(0)

xiaofei2001128 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档