两种解析方式概述

  dom解析

  (1)是W3C组织推荐的处理XML的一种解析方式.

  (2)将整个XML文档使用类似树的结构保存在内存中,在对其进行操作.

  (3)可以方便的对XML进行增删改查的操作

  (4)需要等到XML完全加载进内存才可以进行操作

  (5)耗费内存,当解析超大的XML时慎用

  sax解析

  (1)SAX(Simple API for XML)不是官方表准,但是几乎所有的XML解析器都支持他.

  (2)逐行扫描xml文档,当遇到标签时触发解析处理器,采用事件处理的方式解析xml

  (3)在读取文档的同时即可对xml进行处理,不必等到文档加载结束,相对快捷

  (4)不需要加载进内存,因此不存在占用内存的问题,可以解析超大的XML

  (5)只能用来读取XML中数据,无法进行增删改

  dom解析

DOM: Document Object Model 文档对象模型。
        在应用程序中,基于DOM的XML解析器将一个XML文档转换成QQ一个对象模型的集合(通常称DOM树),应用程序通过对这个对象模型的操作,来实现对XML文档数据的操作。
        通过DOM接口,应用程序可以在任何时候访问XML文档中的任何一部分数据,因此,这种利用DOM接口的机制也被称作随机访问机制。
        DOM树所提供的随机访问方式给应用程序的开发带来了很大的灵活性,它可以任意地控制整个XML文档中的内容。
        然而,由于DOM解析器把整个XML文档转化成DOM树放在了内存中,因此,当文档比较大或结构比较复杂时,对内存的需求就比较高。
        而且,对于结构复杂的树的遍历也是一项耗时的操作。
        所以,DOM解析器对机器性能的要求比较高,实现效率不十分理想。
        由于DOM解析器所采用的树结构的思想与XML文档的结构相吻合,同时鉴于随机访问所带来的方便,因此,DOM解析器还是有很广泛的应用价值的。
总结:使用对象来封装(文档/标签/属性/标签体),使用对象和对象的关联来表示节点之间的关系.
优点:一次加载,反复使用;非常便捷的每个节点进行CRUD操作
缺点:占内存,不能解析过大的XML文档  

  sax解析

SAX的全称是Simple APIs for XML,也即XML简单应用程序接口。
        与DOM不同,SAX提供的访问模式是一种顺序模式,这是一种快速读写XML数据的方式。
        当使用SAX解析器对XML文档进行分析时,会触发一系列事件,并激活相应的事件处理函数,应用程序通过这些事件处理函数实现对XML文档的访问,因而SAX接口也被称作事件驱动接口。
总结:采用逐行解析的方式来解析XML文档
优点:不占内存,多大的文档都能解析,逐行解析,不需要解析所有内容就可以操作,
缺点:只能进行读取,不能执行更新操作(增删改),每次查询都需要重新解析
优势:
        (1)然而,由于SAX解析器实现简单,对内存要求比较低,(SAX不必将整个XML文档加载到内存当中,所以它占据内存要比DOM小), 因此实现效率比较高。
        对于大型的XML文档来说,通常会用SAX而不是DOM。
        (2)并且对于那些只需要访问XML文档中的数据而不对文档进行更改的应用程序来说,SAX解析器更为合适。
局限性:
        (1) SAX解析器在对XML文档进行分析时,触发了一系列的事件,由于事件触发本身是有时序性的,因此,SAX提供的是一种顺序访问机制,对于已经分析过的部分,不能再倒回去重新处理。
        即,一旦经过了某个元素,我们没有办法返回去再去访问它。
        (2)SAX解析器只做了一些简单的工作,大部分工作还要由应用程序自己去做。
        也就是说,SAX解析器在实现时,只是顺序地检查XML文档中的字节流,判断当前字节是XML语法中的哪一部分、是否符合XML语法,然后再触发相应的事件,而事件处理函数本身则要由应用程序自己来实现。
        同DOM解析器相比,SAX解析器缺乏灵活性。
xml解析开发包
        Jaxp(sun,j2se)、dom4j(dom4j)

XML解析方式的更多相关文章

  1. xml解析方式之JAXP解析入门

    XML解析 1 引入 xml文件除了给开发者看,更多的情况使用[程序读取xml文件]的内容.这叫做xml解析 2 XML解析方式(原理不同) DOM解析 SAX解析 3 XML解析工具 DOM解析原理 ...

  2. XML解析方式汇总

    XML解析方式汇总 分类: XML2011-08-23 19:19 167人阅读 评论(0) 收藏 举报 xmlstringexceptionattributesclassiterator DOM解析 ...

  3. XML解析方式有哪些?

    1.DOM:要求解析器吧整个XML文档装载到内存,并解析成一个Document对象. (1).优点:元素与元素之间保留结构关系,故可以进行增删改查操作. (2).缺点:XML文档过大,可能出现内存溢出 ...

  4. Android中的三种XML解析方式

    在Android中提供了三种解析XML的方式:SAX(Simple API XML),DOM(Document Objrect Model),以及Android推荐的Pull解析方式.下面就对三种解析 ...

  5. java xml解析方式(DOM、SAX、JDOM、DOM4J)

    XML值可扩展标记语言,是用来传输和存储数据的. XMl的特定: XMl文档必须包含根元素.该元素是所有其他元素的父元素.XML文档中的元素形成了一颗文档树,树中的每个元素都可存在子元素. 所有XML ...

  6. XML解析方式与解析工具

    DOM解析原理: 1)JAXP (oracle-Sun公司官方) 2)JDOM工具(非官方) 3)Dom4J工具(非官方) 三大框架(默认读取xml的工具就是Dom4j) ....... SAX解析原 ...

  7. 带URL的XML解析方式

    XmlDocument xml = new XmlDocument(); xml.LoadXml(responseString); XmlNode root = xml.DocumentElement ...

  8. iOS - 分析JSON、XML的区别和解析方式的底层是如何实现的(延伸实现原理)

    <分析JSON.XML的区别,JSON.XML解析方式的底层是如何实现的(延伸实现原理)> (一)JSON与XML的区别: (1)可读性方面:基本相同,XML的可读性比较好: (2)可扩展 ...

  9. XML有哪些解析方式有何优缺点?xml有哪些解析技术?区别是什么?

    有DOM,SAX,STAX等 (1):DOM:处理大型文件时其性能下降的非常厉害.这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XM ...

随机推荐

  1. Spring课程 Spring入门篇 5-5 advice应用(下)

    2 代码演练 2.1 环绕通知(不带参数) 2.2 环绕通知(带参数) 2 代码演练 2.1 环绕通知(不带参数) 实体类: package com.imooc.aop.schema.advice.b ...

  2. js中map和python中的map

    js 中的map: 由于map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果: function pow( ...

  3. git 永久性设置密码

    git 设置不需要输入密码 https方式每次都要输入密码,按照如下设置即可输入一次就不用再手输入密码的困扰而且又享受https带来的极速 设置记住密码(默认15分钟): git config --g ...

  4. Vue2.0的动画效果

    本文只是结合一些代码和图片加强对Vue动画的理解,更多资料请戳这里 结合原生CSS实现动画 下面是一张图片,简单清晰明了是吧^-^ 下面是一段代码 <!DOCTYPE html> < ...

  5. 阿里云安装jdk报错gzip: stdin: unexpected end of file

    在阿里云上面安装jdk时候报了这个问题,如下图所示 然后看了下jdk应该是有150多M的,但是阿里云上面的只有1M多,删除 重新下载... tar zxvf jdk 好了

  6. c++ inline 的位置不当导致的 无法解析的外部符号

    这几天编写代码碰到 无法解析的外部符号 visual studio. 在类中 inline 修饰符应该放在类函数定义的时候而不是声明的地方 即 // test.h 头文件 class A { publ ...

  7. c# 修改winform中app.config的配置值

    public bool ChangeConfig(string AppKey,string AppValue) { bool result = true; try { XmlDocument xDoc ...

  8. linux:相关命令以及笔记

    首先,在linux 或者 unix里没有任何的反馈就叫成功,例如: (1)命令执行成功的样子:返回了登录用户信息 (2)命令执行失败的样子:没有返回任何东西 1.按键出现状况 解决:可以使用ctrl+ ...

  9. Future Research Directions in Social Recommendation

    From the tutorial published by Martin Ester in RecSys 2013 Future Research Directions --Recommendati ...

  10. NET平台微服务

    .NET平台微服务项目汇集   最近博客园出现了一篇文章<微服务时代之2017年五军之战:Net PHP谁先死>,掀起了一波撕逼,作者只是从一个使用者的角度来指点江山,这个姿势是不对的.. ...