XML解析技术研究

XML解析技术研究

ID:45567143

大小:113.08 KB

页数:14页

时间:2019-11-14

XML解析技术研究_第1页
XML解析技术研究_第2页
XML解析技术研究_第3页
XML解析技术研究_第4页
XML解析技术研究_第5页
资源描述:

《XML解析技术研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、XML解析技术研究摘要:XML作为过去十年中出现的最流行的技术之一,得到了广泛的应用,而其中XML解析技术是XML应用的关键。木文介绍了XML解析技术的研究动向,分析和比较了4种XML解析技术的优劣,并归纳总结了应用系统设计中选取合适的XML解析技术的原则。1引言XML(extensibleMarkupLanguage,可扩展标记语言)是由WorldWideWeb联盟(W3C)定义的元语言,即一种关于语言的语言。XML的设计源于SGML(StandardGeneralizedMarkupLanguage,标淮通用标记语

2、言),是SGML的子集,其目的是为了促进Internet±结构化文档的交换。简单的说,XML是一组规则和准则的集合,用于以无格式文本來描述结构化数据[1].1996年W3C联盟就开始从事XML的标准化工作,并于1998年2月10日发布了XML1.0.XML的出现给分布式计算领域带来了重大影响,其力量源于它的数据独立性[1]・XML是纯数据描述,与编程语言、操作系统或传输协议无关,从而将数据从以代码为屮心的基础结构所产生的约束屮解放出来,让数据能够在Web±更门由的流通。然WJXML本身只是以纯文本对数据进行编码的一种格

3、式,耍想利用XML,或者说利用XML文件屮所编码的数据,必须先将数据从纯文本屮解析岀来,因此,必须有一个能够识别XML文档中信息的解析器,用来解释XML文档并提取其中的数据。然而,根据数据提取的不同需求,又存在着多种解析方式,不同的解析方式有着各自的优缺点和适用环境。选择合适的XML解析技术能够有效提升应用系统的整休性能,因此,了解和区分各种不同的XML解析技术就显得尤为重要。2XML解析技术分析所有的XML处理都从解析开始,无论是使用XSLT或耳烂语言,第一步都是要读入XML文件,解码结构和检索信息等等,这就是解析,

4、即把代表XML文档的一个无结构的字符序列转换为满足XML语法的结构化组件的过程。2.1XML解析技术的分类根据从XML+获取数据的简易性,性能和最终所得到的数据模型的不同,XML解析技术人致可分为以卜•四类:1)面向文档的流式解析;2)面向文档的对象式解析;3)面向文档的指针式解析;4)而向应用的对彖式解析;这四类解析技术分别处于不同的抽象层次,适用于不同的应用场景,有着各自的优缺点。针对具体的应用需求,选择合适的解析技术,往往能够减少内存消耗,缩短处理时间,更方便地获取数据,提高应用系统的整体性能。2.2面向文档的流

5、式解析技术流式解析是一种基于事件的解析过程,解析器顺序读取XML文档,产生一个对应的事件流,并向事件处理程序发送所捕获的各种事件,如元素开始和元素结束等,而事件处理程序则通过不同的方法处理这些事件。流式解析是将XML文档作为一个数据流來处理,因此,它具有类似于流媒体的优点,能够立即开始读取数据,而不是等待所有的数据被处理。而且,由于应用程序只是在读取数据时检查数据,不需要将整个文档一次加载到内存屮,使得在处理大型文档时具有较好的时间和空间上的效率。然而效率的代价是易用性的降低,流式解析编程较为复杂,程序员需要负责更多的

6、操作。并且由于应用程序没有以任何方式血数据,所以使得更改数据或在数据流中往后移是不可能的。再加上它的单遍解析特性,意味着它也不支持随机访问。流式解析又分为两种解析方式:推式解析(SAX)和拉式解析(StAX)o这两种方式的主要区别在于是由解析器还是应用程序控制读循环(读入文件的循环)。2.2.1推式解析(SAX解析技术)SAX(SimpleAPIforXML)解析技术就是一种推式解析,在这种解析方式中,解析器控制着读循环,在文档结束之前控制权不会返回给应用程序[3]•解析器通过回调的方式进行数据处理。SAX提供了一个用

7、于处理XML的,基于事件驱动的简单API.它的设计开始于XML-DEV邮件列表成员间的讨论,他们开发出的第一个接口草案SAX1.0于1998年1月发布,其后在2000年5月发布了SAX2.0,目前最新版本是2004年4月发布的SAX2.0.2.SAX没有经过官方的标准机构认可,它不由W3C联盟或其它任何官方机构维护(现在,SAX由DavidMegginson维护)[4],但它被广泛使用并视为XML社区事实上的标准。SAX最初是为JavajflJ定义的,但也可以用于Python>Perl、C++等其它语言。SAX是基于事

8、件驱动的,即SAX解析器在读取XML文档的过程中生成一个事件流,并几对于每个事件通过回调事件处理程序屮相应的方法來进行处理。比如元索开始和结束标记,元索内容,实体,语法分析错误等事件。针对下面的简单XML文档,所产生的事件如图1所示,注意针对元索内的空格或回车也会生成一个文本事件。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。