开发手册 欢迎您!
软件开发者资料库

StAX分析器 - 概述

Apache Xerces StAX Parser概述 - 从简单和简单的步骤学习Apache Xerces,从基本概念到高级概念,包括概述,Apache Xerces XML解析器,DOM解析器,解析XML文档,查询XML文档,创建XML文档,修改XML文档,SAX解析器,StAX解析器。

StAX是一个基于JAVA的API,用于以与SAX解析器类似的方式解析XML文档.但是这两个API之间有两个主要的差异点 :

  • StAX是一个PULL API,而SAX是一个推送API.这意味着在StAX解析器的情况下,客户端应用程序需要要求StAX解析器在需要时从XML获取信息,但是在SAX解析器的情况下,当SAX解析器通知客户端应用程序该信息时,客户端应用程序需要获取信息.可用.

  • StAX API可以读取和写入XML文档.使用SAX API,只能读取xml.

以下是StAX API的功能 :

  • 从上到下读取XML文档,识别构成格式良好的XML文档的标记.

  • 令牌的处理顺序与文档中显示的顺序相同.

  • 报告应用程序中令牌的性质解析器在发生时遇到过.

  • 应用程序提供了一个"事件"读取器,它充当迭代器并迭代事件以获取所需信息.另一个可用的读者是"游标"阅读器,它作为指向xml节点的指针.

  • 在识别事件时,可以从事件中检索xml元素对象并且可以进一步处理.

何时使用?

你应该使用StAX解析器当 :

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

  • 文档没有深层嵌套.

  • 您正在处理一个非常大的XML文档DOM树这将消耗太多的内存.典型的DOM实现使用10个字节的内存来表示XML的一个字节.

  • 要解决的问题只涉及XML文档的一部分.

  • 解析器看到数据后立即可用,因此StAX适用于通过流到达的XML文档.

SAX的缺点

  • 我们没有随机访问XML文档,因为它是以只进的方式处理的.

  • 如果您需要跟踪解析器已经看到的数据或更改项目的顺序,你必须自己编写代码并存储数据.

XMLEventReader Class

这个class提供事件的迭代器,可用于在解析XML文档时迭代事件

  • StartElement asStartElement() : 用于检索元素的值和属性.

  • EndElement asEndElement() : 在元素的末尾调用.

  • 字符asCharacters() : 可用于获取CDATA,空格等字符.

XMLEventWriter Class

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

  • add(事件事件) : 将包含元素的事件添加到XML.

XMLStreamReader类

此类提供事件的迭代器可以用来在解析XML文档时迭代事件

  • int next() : 用于检索下一个事件.

  • boolean hasNext() : 用于检查是否存在其他事件

  • String getText() : 用于获取元素的文本

  • String getLocalName() : 用于获取元素的名称

XMLStreamWriter类

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

  • writeStartElement(String localName) : 添加给定名称的开始元素.

  • writeEndElement(String localName) : 添加给定名称的结束元素.

  • writeAttribute(String localName,String value) : 将属性写入元素.