java解析xml文件的2种方法:sax,dom

转载 2007年09月15日 10:47:00

SAX概念
SAX是Simple API for XML的缩写,它并不是由W3C官方所提出的标准,可以说是“民间”的事实标准。实际上,它是一种社区性质的讨论产物。虽然如此,在XML中对SAX的应用丝毫不比DOM少,几乎所有的XML解析器都会支持它。

与DOM比较而言,SAX是一种轻量型的方法。我们知道,在处理DOM的时候,我们需要读入整个的XML文档,然后在内存中创建DOM树,生成DOM树上的每个Node对象。当文档比较小的时候,这不会造成什么问题,但是一旦文档大起来,处理DOM就会变得相当费时费力。特别是其对于内存的需求,也将是成倍的增长,以至于在某些应用中使用DOM是一件很不划算的事(比如在applet中)。这时候,一个较好的替代解决方法就是SAX。

SAX在概念上与DOM完全不同。首先,不同于DOM的文档驱动,它是事件驱动的,也就是说,它并不需要读入整个文档,而文档的读入过程也就是SAX的解析过程。所谓事件驱动,是指一种基于回调(callback)机制的程序运行方法。(如果你对Java新的代理事件模型比较清楚的话,就会很容易理解这种机制了)


在XMLReader接受XML文档,在读入XML文档的过程中就进行解析,也就是说读入文档的过程和解析的过程是同时进行的,这和DOM区别很大。解析开始之前,需要向XMLReader注册一个ContentHandler,也就是相当于一个事件监听器,在ContentHandler中定义了很多方法,比如startDocument(),它定制了当在解析过程中,遇到文档开始时应该处理的事情。当XMLReader读到合适的内容,就会抛出相应的事件,并把这个事件的处理权代理给ContentHandler,调用其相应的方法进行响应。 

Java之DOM,SAX,JDOM,DOM4J,四种解析xml方法比较

4种解析方式的比较 1.DOM解析    优点:a.形成了树结构,直观好理解,代码更易编写          b.解析过程中树结构保留在内存中,方便修改 缺点:         a.当xml...
  • qq_31028891
  • qq_31028891
  • 2016年08月13日 21:29
  • 1592

DOM和SAX解析XML文档区别及的优缺点

SAX (Simple API for XML) 和 DOM (Document Object Model) 是当前两个主要的XML API,几乎所有商用的xml 解析器都同时实现了这两个接口。因...
  • lm16875
  • lm16875
  • 2013年05月16日 18:20
  • 1411

JavaWeb 之 XML文档的DOM和SAX解析方式详解

笔记摘要:       这里主要介绍了DOM与SAX两种解析思想,其中DOM解析的开发包有Ajax和DOM4j,对于DOM4j,其强大的功能,在XPath方面尤为抢眼,       XPath类似于正...
  • xushuaic
  • xushuaic
  • 2012年08月31日 18:30
  • 1981

sax和dom在解析xml文档时有什么区别

当你需要处理XML文档时,你的首要选择是使用DOM(文档对象模型)还是使用SAX(用于XML的简单API),即当前使用的两个主要的XML API。你可以使用任何一种(或者在同一时间使用两种)来处理XM...
  • zhupengqq
  • zhupengqq
  • 2016年04月18日 18:31
  • 1304

利用Dom,Sax,Pull三种方式解析xml文件

最近找工作,看到许多公司的要求里都写了要会xml解析,所以就把之前的xml解析知识又重新回顾了一下,写个小例子. 解析xml文件常用的几种方式也就dom,sax,pull了,并且面试官经常问到的也是这...
  • qiang_xi
  • qiang_xi
  • 2015年11月29日 20:15
  • 1221

SAX解析与DOM解析的区别

1.SAX解析(Simple API for XML) SAX解析方式:逐行扫描文档,一遍扫描一遍解析。相比于DOM,SAX可以在解析文档的任意时刻停止解析解析,是一种速度更快,更高效的方法。 优点:...
  • sinat_27170093
  • sinat_27170093
  • 2017年01月07日 13:50
  • 1118

DOM解析和SAX解析的区别

本文为转载,内容基本不变,格式用Markdown重排。 原文地址:DOM解析和SAX解析的区别 NO 区别 DOM解析 SAX解析 1 操作 将所有文件读取到内存中形成D...
  • hbwindy
  • hbwindy
  • 2016年05月11日 21:31
  • 3067

Android中三种常用解析XML的方式(DOM、SAX、PULL)简介及区别

XML在各种开发中都广泛应用,Android也不例外。作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能。今天就由我向大家介绍一下在Android平台下几种常见的XML解...
  • cangchen
  • cangchen
  • 2015年03月03日 10:17
  • 3719

DOM&SAX优缺点对比

DOM(文档对象模型),为XML文档的解析定义了一组接口,解析器读入整个文档,然后构造一个驻留内存的树结构,然后代码就可以使用DOM接口来操组整个树结构,其他点如下: 优点:整个文档树都在内存当...
  • hemeng2009
  • hemeng2009
  • 2014年10月15日 16:26
  • 591

sax、dom、jdom的优缺点和区别

---- sax, dom, jdom技术的优缺点比较 SAX分析器在对XML文档进行分析时,触发一系列的事件,应用程序通过事件处理函数实现对XML文档的访问。由于事件触发本身是有时序性的,因此...
  • a519781181
  • a519781181
  • 2016年07月29日 10:20
  • 559
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java解析xml文件的2种方法:sax,dom
举报原因:
原因补充:

(最多只允许输入30个字)