java stax_Java StAX解析器

StAX是一个基于JAVA API用于解析XML文档,类似SAX解析器的方式。但两种API之间有两个区别

StAX是PULL API,其中作为SAX是PUSH API。这意味着如果StAX解析器,客户端应用程序需要询问StAX解析器从XML获取信息它所需要的,但如果是SAX解析器,客户端应用程序需要获取信息时,SAX解析器会通知客户端应用程序的信息是可用的。

StAX的API可以读取和写入XML文档。使用SAX API,XML可以是只读的。

环境设置

为了使用StAX的解析器,应该准备好stax.jar在应用程序的类路径中。下载 stax-1.2.0.jar.

以下是StAX API的功能

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

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

报告应用程序,因为解析器遇到标记的特性

应用程序提供了一个“事件”读取器充当了事件,以获得所需信息的迭代器和迭代。可另一个读取器是“光标”充当一个指向XML节点。

由于事件被识别,XML元素可以从事件对象进行检索,并且可以进一步处理。

什么情况下使用?

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

可以处理在自上而下线性方式的XML文档。

文件并不深入嵌套。

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

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

数据是可用的,只要它是由解析器处理,这样StAX可以很好地用于所收到超过数据流的XML文档。

SAX的缺点

因为它是在一个处理的方式,而不是随机访问XML文档。

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

XMLEventReader类

因为在解析XML文档时该类提供可用于迭代事件事件迭代器

StartElement asStartElement() - 用于检索值和元素的属性。

EndElement asEndElement() - 调用元件的端部。

Characters asCharacters()- 可用于获得字符,例如一个CDATA,空白等。

XMLEventWriter类

此接口指定创建事件的方法。

add(Event event) - 添加包含元素XML事件。

XMLStreamReader Class

因为在解析XML文档时该类提供可用于迭代事件事件迭代器

int next() - 用于检索下一个事件。

boolean hasNext() - 用于检查其他事件的存在与否

String getText()- 用于获取一个元素的文本

String getLocalName() - 用于获取一个元素的名称

XMLStreamWriter类

此接口指定创建事件的方法

writeStartElement(String localName)- 加入定名称开始元素。

writeEndElement(String localName)- 添加指定名称的结束元素。

writeAttribute(String localName, String value) - 编写属性到元素。

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值