使用 sax 处理 xml 文档

使用 sax 处理 xml 文档

ID:13251143

大小:64.33 KB

页数:19页

时间:2018-07-21

使用 sax 处理 xml 文档_第1页
使用 sax 处理 xml 文档_第2页
使用 sax 处理 xml 文档_第3页
使用 sax 处理 xml 文档_第4页
使用 sax 处理 xml 文档_第5页
资源描述:

《使用 sax 处理 xml 文档》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、这里我将向大家介绍处理XML文档的另一个重要接口SAX(SimpleAPIforXML)。其中包括它的基本情况,它的API,一个开发实例,实际开发中一些需注意的问题,以及它与DOM的对比。SAX的基本情况SAX同DOM一样也是一个访问XML文档的接口。SAX是SimpleAPIforXML的缩写。它不像DOM那样是W3C的推荐标准。它是由XML-DEV邮件列表的成员开发维护,由DavidMegginson领导(david@megginson.com)的一个PublicDomain软件。SAX是一个彻底的自由软件,它的作者放弃了对它的所

2、有权利,并且它也被许可用于任何目的(在文章最后附录了它的版权声明)。到现在为止SAX的版本已经发展到2.0。在这个最新版本中增加了对名称空间(Namespaces)的支持,而且可以通过对features以及properties的设置来对解析器做全面的配置,这其中包括设置解析器是否对文档进行有效性验证,以及怎样来处理带有名称空间的元素名称等。SAX1中的接口已经不再使用了,这里只会讨论有关SAX2的开发。在本文中提到SAX只是指SAX2。另外,本文的所有例子都是用java编写,SAX解析器也使用的是JAVA版本。像DOM一样,SAX并不

3、是一个实际可以使用的XML文档解析器,而是其他兼容SAX的解析器要实现的接口和帮助类的集合。如果你想使用SAX的话,你必须满足下面的要求:1.系统中包含Java1.1或者更高版本。2.在Javaclasspath中包含进你的SAX类库。3.在Javaclasspath中包含进你要使用的兼容SAX的XML解析器类库。实现了SAX的解析器有很多,比如Apache的Xerces,Oracle的XMLParser等等。在本文中的例子程序使用的都是Xerces解析器,你可以从http://xml.apache.org得到它。让我们下载得到xer

4、ces.jar文件然后将其加入到classpath中去,这样我们就已经建立好环境(在xerces.jar中已经包含了SAX接口,所以不必特意再去寻找SAX类库)。在SAXAPI中有两个包,org.xml.sax和org.xml.sax.helper。其中org.xml.sax中主要定义了SAX的一些基础接口,如XMLReader、ContentHandler、ErrorHandler、DTDHandler、EntityResolver等。而在org.xml.sax.helper中则是一些方便开发人员使用的帮助类,如缺省实现所有处理器接

5、口的帮助类DefaultHandler、方便开发人员创建XMLReader的XMLReaderFactory类等等。在这两个包中还有一些应用于SAX1的接口,同时还有几个类它们只是为了便于将在SAX1上开发的应用移植到SAX2上,在这篇文章中就不涉及了。下面是我们要关注的接口和类:Packageorg.xml.sax介绍Interfaces接口Attributes定义了一个属性列表接口,供访问元素的属性列表而用。ContentHandler处理解析文档内容时产生的事件。DTDHandler处理解析DTD时的相应事件。EntityRes

6、olver处理外部实体。ErrorHandler处理解析过程中所遇到的文档错误事件。Locator为了定位解析中产生的内容事件在文档中的位置而准备的一个定位器接口。XMLFilter提供了一个方便应用开发的过滤器接口。XMLReader任何兼容SAX2的解析器都要实现这个接口,这个接口让应用程序可以设置或查找features和properties,注册各种事件处理器,以及开始解析文档。ClassesInputSource为XML实体准备的输入源。ExceptionsSAXException包装了一般的SAX错误和警告。SAXNotRe

7、cognizedException为识别不出某些标识而抛出的异常。SAXNotSupportedException为不支持某个操作而抛出的异常。SAXParseException包装了一个关于XML解析的错误或者警告。Packageorg.xml.sax.helpers帮助类所在的包Classes类AttributesImpl对Attributes接口的缺省实现NamespaceSupport提供名称空间支持。DefaultHandler缺省实现了四个处理器接口,方便用户开发,在开发过程中会经常用到。LocatorImpl提供了一个对

8、Locator接口的实现XMLFilterImpl对过滤器接口的实现,使用过滤器进行应用程序开发时,继承这个类很方便。XMLReaderFactory为方便创建不同的XMLReader而提供。也会经常用到。回页首理解并使

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

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

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