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)

java sax_Java教程分享详细了解Javasax解析器相关推荐

  1. java培训教程分享:Java中怎样将数据对象序列化和反序列化?

    本期为大家介绍的java培训教程是关于"Java中怎样将数据对象序列化和反序列化?"的内容,相信大家都知道,程序在运行过程中,可能需要将一些数据永久地保存到磁盘上,而数据在Java ...

  2. java培训教程分享:Java编写软件代码自动提示功能

    本期的java培训教程分享主要是介绍的java编写软件代码的一个自动提示功能,很多零基础和初学java的同学们对这一块还不是很了解,Eclipse for android 实现代码自动提示智能提示功能 ...

  3. java培训教程分享:Java中用户如何自定义异常?

    我们在学习java技术的时候应该有了解过,在java中是定义了很多的异常类的,虽然这些大量异常类可以帮助我们描述编程时出现的大部分异常情况,但是在程序开发中有时可能需要描述程序中特有的异常情况,例如在 ...

  4. java定义语法解析器,java开发工具intellij idea使用教程:定义语法和解析器.pdf

    java开发工具intellij idea使用教程:定义语法和解析器.pdf 还剩 3页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 慧都 科技 -- ...

  5. java中注解的解析_【Java】中的注解与注解解析器

    /** * 该注解描述了作用范围 * java RetentionPolicy.SOURCE * java+class RetentionPolicy.CLASS * java+class+jvm R ...

  6. 超全面的Java全套教程分享_动力节点完整版视频教程

    各种各样的编程语言不断崛起,但唯有Java是牢牢占据着老大的位置,目前几乎90%以上的大中型互联网应用系统在服务器端开发首选Java. 因此,也是吸引了不少年轻人投入到Java的学习之中. 但不得不说 ...

  7. Java培训教程分享:变量与常量

    在程序执行过程中,其值不能被改变的量称为常量,其值能被改变的量称为变量.变量与常量在编写程序中需要经常使用,本节将详细介绍变量与常量的使用方法. 标识符 标识符(identifier)用于命名变量.常 ...

  8. oppofindx3免打扰模式教程分享(详细教程)

    当我们在开会或是晚上睡觉时.可以开启免打扰模式来防止别人来打扰你.那oppofindx3的免打扰模式在哪开呢?如果你还不是很清楚就快来看看换换带来的这个方法吧.相信一定能帮到你! oppofindx3 ...

  9. java litjson_仿造 Gson 的自制 json 解析器

    零 引子 0 源码 1 开发依赖 Maven : 3.3.9 (主要用作打包工具) IDE : idea 2018.3 JDK : OpenJDK 11.0.1 (OracleJDK 8 以上即可) ...

最新文章

  1. EID:宏基因组测序在新发腹泻病毒鉴定中的应用
  2. 行业首个少样本NER数据集,清华联合阿里达摩院开发 | ACL-IJCNLP 2021
  3. Java高并发编程:使用JDK5中同步技术的3个面试题
  4. log4j 调试时候配置
  5. 对C语言进行调试的最好方法是什么?
  6. 第5篇:Flowable-Modeler详述之开发环境搭建
  7. java bean spring_Java bean与Spring、Spring MVC关系
  8. linux内核的冷热页分配器
  9. 002-Go通过ioutil 读写文件
  10. 5-5 多边形周长计算(继承)
  11. 项目: 生命游戏(C语言)
  12. python drop用法_python进行数据清理之pandas中的drop用法
  13. Unity立体几何 点到直线距离计算
  14. 阿里巴巴推进中国中产阶级奢侈消费
  15. 计算机屏幕上怎么会有条竖杠,电脑屏幕出现一条竖线
  16. 相似度论文系列-1:入门方法Towards a Unified Multi-Dimensional Evaluator for Text Generation
  17. HEVC代码学习15:AMVP相关函数
  18. SpringBoot多环境开发
  19. C# Winform窗体置顶(解决this.this.TopMost = true失效的问题)
  20. vs2019创建EF的时候 系统找不到指定的路径

热门文章

  1. S32K系列S32K144学习笔记——时钟
  2. netfilter模块编译和运行
  3. python爬取关注度高股票,Python爬取股票数据,让你感受一下什么是一秒钟两千条数据...
  4. 电商数据结构之订单模块(订单模块的数据结构设计)
  5. 一款基于stm32的智能衣柜
  6. 关于各种型号单片机delay函数不起作用问题的解决方法
  7. 测光 (Metering)
  8. 待机王诺基亚225双卡双待版开卖,340元
  9. 算法-概率论(基本概念、古典概型、几何概型)
  10. OSX: Garageband/LogicPro各种安装包下载