XML比较与研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
XML比较与研究

XML比较与研究   摘要: XML能很好、方便地描述和组织数据,利用XML解析器可以为应用程序从XML文件中解析出所需要的数据,解析器的质量评定标准在于它对XML标准的支持程度,对多种XML解析器的技术的原理、处理XML文档的步骤和优缺点进行比较,为选择适合于实际情况的最优XML解析器做出充分的准备工作。   关键词: XM解析器;DOM;SAX;StAX;StAX   中图分类号:TP3文献标识码:A文章编号:1671-7597(2010)0910101-01      XML应用广泛,在很多实际的问题中,人们非常关心XML的数据结构,并且根据其结构提取自己需要部分的数据。利用XML解析器可以为应用程序从XML文件中解析出所需要的数据。如何选择更为高效的解析器类型是编程人员在程序设计前的重要准备工作。   XML与SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是展示数据。   另外,XML与HTML的设计也存在区别,XML是用来存储数据的,重在数据本身。而HTML是用来定义数据的,重在数据的显示模式。   XPath(XML Path Language),即XML路径语言,它定义了用于寻址XML文档各部分的语法。依据文档的逻辑树形结构求XPath表达式的值,用以指定节点集合。这个抽象层使得开发者避免了文档物理结构的复杂性,并且大大简化了处理。XPath定义了所有表达式用来求值的树状模型,XPath树状模型将XML文档的逻辑结构进行编码,因而被正式的定义为XML信息集。   1 常用解析器类型分析   目前,常用的解析有基于DOM的解析器;基于事件的SAX解析器;   1)DOM:(Document Object Mode)文档对象模型。   DOM是以层次结构组织的节点或信息片断的集合,由W3C组织定义并公布的一个规范。可以动态创建XML文档、遍历文档,修改、添加、删除文档内容,是一个与平台无关、与语言无关的应用程序接口,它是基于信息层次的,或者说是基于树或基于对象的,即DOM规范的核心是树模型。   2)SAX:(Simple API for XML)简单应用程序编程接口。   SAX是一个事件驱动的JAVA接口,和DOM解析器不同的是,SAX解析器不需要在内存中建立和XML文件相对应的树形结构数据,它的核心是事件处理机制,与DOM解析器相比,SAX解析器占有的内存容量少,对于许多应用程序,使用SAX解析器来获取XML数据具有更高的效率。当XML文档由SAX解析器读入,对XML文档进行解析时,遇到不同的分析事件时就会触发在接口中定义的不同方法。   2 DOM与SAX的比较   DOM解析器的好处是:一个应用程序可以方便地操作内存中树的节点来处理XML文档来获取自己所需要的数据。因为DOM解析器把XML文档转化为一个结果树,可以对它进行遍历。用DOM解析模型的优点就是编程容易,开发者只需调用建树的指令,再利用navigation APIs访问所需的树节点来完成任务。可以很容易的添加和修改树中的元素及其内容。   而DOM的不足之处是:如果XML文件较大,相应的Document对象就要占用较多的内存空间,另外,应用程序可能并不需要XML文件的全部数据,而只是需要一部分,但为了获取这部分数据却付出了较大的空间代价。   SAX解析器采用的是基于事件的模型,它在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到,SAX处理分析能够立即开始,而不是等待所有的数据被处理。它的优点类似于流媒体,应用程序不必解析整个文档;可以在某个条件得到满足时停止解析。应用程序只在读取数据时检查数据,因此不需要将所有数据都存储在内存中对于大型文档来说这可以说是个巨大的优点。   DOM和SAX各自的优缺点可以形成互补。DOM使用内存保存对象结构,适合文档较小而数据访问模式复杂的情况;而SAX则基于事件并且不使用内存来存储任何数据。适合文档较大而数据访问模式简单的情况。   而在实际程序开发的情况下,开发者不情愿使用复杂的SAX,因为SAX解析器对编码困难,很难同时访问同一个文档中的多处不同数据。使程序无法达到项目所要求的最低性能目标。所以不管使用哪种方法,性能都会成为问题。   DOM和SAX解析方法具有通用性,但并不是特别为Java语言设计的。   3 StAX(Streaming API for XML)――超越DOM、SAX的限制   为了提高性能,可以使用SAX的取代方案:StAX,它把重点放在流上能极大地提高了XML的处理速度,并且已经称为J

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档