XML解析技术分析与总结

时间:2022-08-01 06:44:56

XML解析技术分析与总结

摘要:随着XML的广泛应用,大量的信息都将通过XML文档来进行存储、交换,因此xML解析技术成为XML应用的关键。本文通过对4种解析技术进行分析和总结,同时本文也介绍了XML解析技术的实现细节,总结归纳了在应用系统中选择合适的XML解析技术的方法,加深理解实现选择解析技术的原则。

关键词:XML文档

解析

中图分类号:TP312

文献标识码:A

文章编号:1002-2422(2010)03-0132-02

XML(Extensible Markup Language。可扩展标记语言)与HTML一样,都是标准通用语言。是W3C制定的一组规范,用来定义文档标记语言的框架,同时作为一种便捷的数据操作和数据传输的工具,提供了一种描述结构数据的格式,XML以简单性、开放性、可扩展性、互操作性等一系列特性给基于Web的应用程序带来了强大的功能和灵活性,因此在现今的Web开发中发挥着越来越重要的作用,使得针对XML文档的操作也越来越频繁。XML也为三层B/S/S应用程序开发提供了所需的技术,使本地化计算和操作成为可能。其另一特性是粒状更新,从而改善了服务器的可缩放性。

由于XML技术的方便性和高效性,一些用于处理XML文档的解析技术应运而生。作为XML应用的基础,XML解析技术一直是XML领域的研究热点。所谓XML文档的解析就是把代表XML文档的一个无结构的字符序列转换为满足XML语法的结构化组件的过程。在提高解析性能、降低资源占用、改善XML解析器的可用性上,人们做了大量的研究和实践工作。但是,验证过程降低了解析器的性能。如何兼顾错误检测能力和性能,已成为XML解析的挑战。目前主要有四种对XML数据进行解析的技术:(1)DOM(Document Ob-iect Model,文档对象模型);(2)SAX(Simple API for XML,用于XML的简单API);(3)JDOM(开源项目,直接为java编程服务);(4)JAXP(Java APIfor XML Processing)。本文将对这四种常用的XML解析技术进行简要介绍。同时本文也总结归纳了在应用系统中选择合适的XML解析技术的方法。

1 XML的解析技术

1,1 DOM解析技术

DOM(Document Object Model)是W3C发展的浏览XML文档的一种标准API,用与平台和语言无关的方式表示XML文档的标准,是一种基于树型的解析技术,将XML文档一次性解析。生成一个位于内存中的对象树用以描述该文档。也是以层次结构组织的节点或信息片断的集合,允许开发人员在XML树中寻找特定信息,通过加载整个文档和构造层次结构分析该结构,从而做任何工作。

100M定义了以下一系列的对象和方法对DOM树的节点进行各种随机操作:

(1)Document对象:作为树的最高节点,Document对象是对整个文档进行操作的入口。

(2)Elemem和Attr对象:这些节点对象都是文档某一部分的映射,节点的定级层次恰好反映了文档的结构。

(3)Text对象:作为Element和Attr对象的子节点,Text对象表达了元素或属性的文本内容。Text节点不再包含任何子节点。

(4)集合索引:DOM提供了几种集合索引方式,可以对节点按指定方式进行遍历。索引参数都是从0开始记数的。

1,2 SAX解析技术

SAX(Simple API For XML)是一个基于事件的XML文档解析标准,是采用“推”模式的解析模型,作为工业界的事实规范应用相当广泛。解析XML文档内容,就不得不对XSL(ExtensibleStylesheet Language)进行分析处理,因为XSL是XML的样式表语言,定义了XML的语法规范。另外,SAX以序列的形式处理文档,不需要在内存中建立整个文档的树结构,因此SAX对内存的要求通常会比较低,因为它让开发人员自己来决定所要处理的tag。特别是当开发人员只需要处理文档中所包含的部分数据时,SAX这种扩展能力得到了更好的体现,与DOM相比。其可认为其是一个轻量级的接口集合。但是其不是持久的,事件过后,若没保存数据,那么数据就丢了。

1,3 JDOM解析技术

JDOM的目的是成为Java特定文档模型,它简化了与XML的交互,从而减少DOM、SAX的编码量,极大减少了代码量。DOM适合于当今流行的各种语言。包括Java,JavaSeripte,VB,VBSeript,PeH,C,C++等,它也为HTML和XML文档提供了一个可应用于不同平台的编程接口。JDOM的另一个特点是它被设计成一个可以在小内存上快速执行的轻量级API,它不要求把整个xML文件放人内存,而只是在需要时把信息装人内存,从而减少了系统资源开销。但是使用JDOM的时候,需要一定的前提条件,即须要有SAX、DOM解析器的类文件。

JDOM类库

在使用JDOM时要下载JDOM类库,将其加载到JDK中。JDOM类库是由以下几个包组成:

(1)org.jdom包含了所有的xml文档要素的java类。

(2)org.jdom.adapters包含了与dem适配的java类。

(3)org.jdom.filter包含了xml文档的过滤器类。

(4)orgdidom.input包中提供的构造类从任何数据源中构造文档。

(5)org.jdom.output包含了读取xml文档的类。

(6)org.jdom.transform包含了将jdom xml文档接口转换为其他xml文档接口。

(7)org.jdom.xpath包含了对xmi文档xpath操作的类。

1,4 JAXP解析技术

JAXP是Java API for XML Processing的缩写,是一种专门提供XML文档解析的Java接口。JAXP API主要的部分在iavax,xml.parsers这个包中。在这个包中,向用户提供了两个最重要的工厂类,SAXParserFactory和Document-BuilderFactory,相应地,提供了SAXParser和Document-Builder两个类。

2结束语

通过对以上四种XML解析结束的分析和比较,可以总结出在选择XML解析技术的选择依据。

当应用程序解析了文档还需多次访问这些数据,可以优先考虑DOM解析;当应用程序需要简单的只读数据流并且希望一个体现成熟标准的强健的实施技术时,可以优先考虑SAX解析;当要应用程序实现的功能简单,如解析、创建等,JDOM是一种最佳选择;当代码与各种解析器的实现细节隔离。一般建议使用JAPX。

上一篇:CDIO理念在高校实验室规划管理及实验教学中的... 下一篇:“以就业为导向”论高职计算机专业课改