SAX和StAX

编程入门 行业动态 更新时间:2024-10-22 19:49:54

<a href=https://www.elefans.com/category/jswz/34/1701153.html style=SAX和StAX"/>

SAX和StAX

如果文档很大,使用DOM会显得效率低下:

此时应该使用流机制解析器(streaming parser):

比较古老的SAX和javaSE6添加的StAX解析器

1、SAX解析器

使用事件回调(event callback),在解析XML输入的组成部分时会报告事件,但不会以任何方式存储文档

而是由事件处理器建立相应的数据结构。DOM就是基于SAX解析器的基础上建立的,它在接收到解析器事件时建立

DOM树。

ContentHandler接口中几个重要的回调方法:

startElement,endElement

characters

startDocument、endDocument

得到SAX解析器,代码如下:

SAXParserFactory   factory=SAXParserFactory.newInstance();

SAXParser  parser=factory.newSAXParser();

parser.parse(source,handle);

其中source可以是一个文件,一个URL字符串或者一个输入流,handler属于一个DefaultHandler的一个子类

DefaultHandler类为四个结构定义了空的方法:

ContentHandler

DTDHandler

EntityHandler

ErrorHandler

2、StAX解析器

提供了解析事件的迭代器,是一种"拉解析器(pull parser),与安装事件处理器不同,使用以下基本循环即可迭代所以事件

InputStream in=url.openStream();

XMLInputFactory factory=XMLInputFactory.newInstance();

XMLStreamReader parser=factory.createXMLStreamReader(in);

while(parser.hasNext()){

    in event=parser.next();

    Call parser methods to obtain details

}

更多推荐

SAX和StAX

本文发布于:2024-03-07 03:54:04,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1716777.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:SAX   StAX

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!