X Tutup
# Java StAX解析器 - Java XML教程 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.](http://dist.codehaus.org/stax/jars/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)** - 编写属性到元素。
X Tutup