返回首页
当前位置: 主页 > 编程语言 > XML教程 >

Java SAX解析器-概述

时间:2020-07-24 10:33来源:电脑教程学习网 www.etwiki.cn 编辑:小山哥

SAX(XML的简单API)是XML文档的基于事件的解析器。与DOM解析器不同,SAX解析器不创建任何解析树。SAX是XML的流接口,这意味着使用SAX的应用程序从文档的顶部开始,以顺序的顺序接收到有关正在处理的XML文档的事件通知的元素和属性,并以关闭文档的结尾结束。根元素。

  • 从上至下读取XML文档,识别组成格式正确的XML文档的标记。

  • 令牌的处理顺序与它们在文档中出现的顺序相同。

  • 向应用程序报告解析器在发生标记时遇到的标记的性质。

  • 应用程序提供了一个“事件”处理程序,该处理程序必须在解析器中注册。

  • 标识令牌后,将使用相关信息来调用处理程序中的回调方法。

什么时候使用?

您应该在以下情况下使用SAX解析器:

  • 您可以从上到下以线性方式处理XML文档。

  • 该文档不是深层嵌套。

  • 您正在处理一个非常大的XML文档,该文档的DOM树将占用过多的内存。典型的DOM实现使用十个字节的内存来表示XML的一个字节。

  • 要解决的问题仅涉及XML文档的一部分。

  • 解析器一看到数据就可以使用,因此SAX很好地适用于通过流到达的XML文档。

SAX的缺点

  • 由于XML文档仅以向前方式进行处理,因此我们无法对其进行随机访问。

  • 如果需要跟踪解析器已查看的数据或更改项目顺序,则必须编写代码并自行存储数据。

ContentHandler接口

此接口指定SAX解析器用来将已经看到的XML文档的组件通知应用程序的回调方法。

  • void startDocument() -在文档的开头调用。

  • void endDocument() -在文档末尾调用。

  • void startElement(String uri,String localName,String qName,Attributes Atts) -在元素的开头调用。

  • void endElement(String uri,String localName,String qName) -在元素末尾调用。

  • 无效字符(char [] ch,int开头,int长度) -遇到字符数据时调用。

  • void ignorableWhitespace(char [] ch,int start,int length) -存在DTD且遇到可忽略的空白时调用。

  • void processingInstruction(String target,String data) -识别到处理指令时调用。

  • setDocumentLocator(Locator locator)) -提供一个可以用来识别文档中位置的Locator。

  • void skippedEntity(String name) -遇到未解决的实体时调用。

  • void startPrefixMapping(String prefix,String uri) -定义新的名称空间映射时调用。

  • void endPrefixMapping(String prefix) -在名称空间定义结束其范围时调用。

属性界面

此接口指定用于处理连接到元素的属性的方法。

  • int getLength() -返回属性数。

  • 字符串getQName(int index)

  • 字符串getValue(int索引)

  • 字符串getValue(字符串qname)

------分隔线----------------------------
标签(Tag):
------分隔线----------------------------
推荐内容
  • Java DOM解析器-解析XML文档

    使用JDOM的步骤 以下是使用JDOM Parser解析文档时使用的步骤。 导入与XML相关的包。 ...

  • Java DOM分析器-概述

    文档对象模型(DOM)是万维网联盟(W3C)的官方推荐。 它定义了一个接口,使程序可以...

  • Java XML-解析器

    XML解析是指遍历XML文档以访问或修改数据。 什么是XML解析器? XML分析器提供了一种访...

  • ebXML-术语

    本章提供ebXML规范中使用的大多数术语的定义。 您肯定已经在前几章中看到了许多内容,...

  • ebXML-摘要

    本简短的教程介绍了ebXML及其各种元素的基...

  • ebXML-使用示例

    下图显示了ebXML场景,这使您很容易理解ebXML的概念。 该示例取自《技术体系结构规范...

猜你感兴趣