现在的位置: 首页 > 综合 > 正文

XML 解析技术

2014年01月22日 ⁄ 综合 ⁄ 共 720字 ⁄ 字号 评论关闭
文章目录

Java里边解析xml一般有三种常用的技术:

1、 Document Object Model (DOM),W3C里边一种成熟的标准。

2、 Simple API for XML (SAX),第一种被广泛接受的XML的API,成为事实上的标准。

3、 Streaming API for XML (StAX),在JSR-173中提到的一种很有前途的新型解析模型。

DOM解析是基于树结构的,它通过在内存构建整棵文档树,允许完全、动态访问XML文档的任何节点。

2、SAX

SAX解析XML采用事件驱动的方式。虽然并不是W3C的标准,但它的API是公认的,很多解析器都是基于它的。当SAX解析器读取文档的时候会引发很多事件,这些事件会交给对应的事件处理者(event handlers)。三种基本的事件:

1. DTDHandler 访问XML的DTD内容

2. ErrorHandler 解析错误

3. ContentHandler 访问文档的内容

3、 StAX

StAX是一种令人振奋的新型解析技术,和SAX一样,它也采用了事件驱动模型。不过,在对于事件的处理上,SAX采用了“推模式”(push modal),而StAX则使用的是“拉模式”(pull model)。说得更加明白一些,就是这样:

SAX是自己按顺序把整个文档解析完,在它解析的过程,会主动产生事件交给程序中相应的处理函数来处理当前内容;而StAX是由程序来驱动整个解析过程,只有当程序发出解析请求的时候,解析器才会告诉相应的事件,然后程序再决定如何处理当前内容。

从这个原理来判断的话,StAX的实现显然要更加灵活,程序可以选择自己需要处理的部分,而SAX则一定会遍历整个文档。而据我的理解,将StAX叫成“程序驱动模型”可能更利于理解一些。

抱歉!评论已关闭.