ITPub博客

首页 > 应用开发 > Java > 好程序员Java教程分享详细了解Javasax解析器

好程序员Java教程分享详细了解Javasax解析器

原创 Java 作者:好程序员IT 时间:2019-10-31 14:23:06 0 删除 编辑

   好程序员Java 教程分享 详细了解Javasax 解析器,SAX( 针对 XML 的简单 API) 是基于事件为 XML 文档的解析器。不像 DOM 解析器, SAX 解析器创建没有解析树。 SAX 是一个流接口用于 XML 的,这意味着使用 SAX 应用接收事件通知有关 XML 文档被处理的元素,属性,在按顺序每次开始在文档的顶部,并与所述闭合结束根元素。

 

  读取XML 文件从上到下,构成一个结构完整的 XML 文档的标记

 

  令牌以相同的顺序进行处理,它们出现在文档中

 

  报告应用程序,因为它们所出现解析器遇到标记的特性

 

  应用程序提供了必须的解析器注册的“事件”处理程序

 

  作为标记标识,在处理程序回调方法相关信息调用

 

  什么时候使用?

 

  应该使用SAX 解析器的时候:

 

  可以在XML 文档从上往下处理以线性方式

 

  该文件并不深层次嵌套

 

  处理一个非常大的XML 文档, DOM 树会占用太多的内存。典型 DOM 的实现使用 10 字节的存储器以表示 XML 的一个字节

 

  解决的问题涉及的XML 文档的一部分

 

  数据是可用的,只要它是由解析器看出,这样的SAX 可以很好地用于到达流的 XML 文档

 

  SAX 的缺点

 

  它是在一个只进入处理随机访问方式XML 文档

 

  如果需要跟踪的数据分析器已经看到或更改项目的顺序,必须自已编写代码和数据存储

 

  ContentHandler 接口

 

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

 

  voidstartDocument()- 调用在一个文件的开头。

 

  voidendDocument()- 调用在一个文件的末尾。

 

  voidstartElement(Stringuri,StringlocalName,StringqName,Attributesatts)- 调用在一个元素的开头。

 

  voidendElement(Stringuri,StringlocalName,StringqName)- 调用在一个元件的末端。

 

  voidcharacters(char[]ch,intstart,intlength)- 字符数据出现时调用。

 

  voidignorableWhitespace(char[]ch,intstart,intlength)- 当 DTD 是当前和忽略空白遇到时调用。

 

  voidprocessingInstruction(Stringtarget,Stringdata)- 当处理指令的认可时调用。

 

  voidsetDocumentLocator(Locatorlocator))- 提供可用于识别文档中的位置的定位器。

 

  voidskippedEntity(Stringname)- 一个尚未解决实体遇到时调用。

 

  voidstartPrefixMapping(Stringprefix,Stringuri)- 当一个新的命名空间的映射定义调用。

 

  voidendPrefixMapping(Stringprefix)- 当一个命名空间定义结束其范围时调用。

 

  属性接口

 

  这种接口指定用于处理连接到一个元素的属性的方法。

 

  intgetLength()- 返回属性的数目。

 

  StringgetQName(intindex)

 

  StringgetValue(intindex)

 

  StringgetValue(Stringqname)

  


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69913892/viewspace-2662083/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
欢迎关注公众号:好程序员特训营 web前端教程分享 723729549 大数据教程分享 703503210

注册时间:2019-03-20

  • 博文量
    539
  • 访问量
    410752