Java下XML编程接口比较:DOM SAX JDOM JAXP

一、DOM (文档对象模型)
为 XML 文档的已解析版本定义了一组接口。解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以使用 DOM 接口来操作这个树结构。
优点:整个文档树在内存中,便于操作;支持删除、修改、重新排列等多种功能;
缺点:将整个文档调入内存(包括无用的节点),浪费时间和空间;
使用场合:一旦解析了文档还需多次访问这些数据;
硬件资源充足(内存、CPU)
二、SAX
为解决DOM的问题,出现了SAX。
SAX ,事件驱动。当解析器发现元素开始、元素结束、文本、文档的开始或结束等时,发送事件,程序员编写响应这些事件的代码,保存数据。
优点:不用事先调入整个文档,占用资源少;
SAX解析器代码比DOM解析器代码小,适于Applet,下载
缺点:不是持久的;事件过后,若没保存数据,那么数据就丢了;
无状态性;从事件中只能得到文本,但不知该文本属于哪个元素;
使用场合:Applet;
只需XML文档的少量内容,很少回头访问;
机器内存少;
三、JDOM
为减少DOM、SAX的编码量,出现了JDOM;
优点:20-80原则,极大减少了代码量
使用场合:要实现的功能简单,如解析、创建等
Java程序
但在底层,JDOM还是使用SAX(最常用)、DOM、Xanan
四、JAPX
为多个XML解析器提供了统一编程接口
更换解析器,不用更改代码
使用场合:若不用Jdom,一般建议使用JAPX,将代码与各种解析器的实现细节隔离。

时间: 2024-10-24 15:11:40

Java下XML编程接口比较:DOM SAX JDOM JAXP的相关文章

浅出Java 的Xml编程

xml|编程 对于Xml,我的认识是,一个用来存放数据的标准格式.怎么看我都觉得XML和Html,完全不一样,也许仅仅只是都使用了标记来作为文档解释的原因吧.所以人们才喜欢把XML和HTML对比来看.对于我个人而言,XML就是一个简单方便的数据文件.因为.它不同与一般的关系型数据库,把数据看出二维表.通过基本的关系运算,获取二维表中的数据.XML仅仅把数据当成一个文档,然后正对文档解析获取数据.所以我的看法是,要操作XML文档,只要一个能够解释XML的文档解释器就可以了.然后把解释的内容.转变成

JAVA的XML编程(dom)

dom|xml|编程 XML作为全球通用的结构化语言,越来越受人们青睐,各种开发平台(比如Microsoft Studio系列.Oracle系列.Inprise Borland系列等)也都把支持XML开发作为宣传口号之一 .由于笔者所从事的电子政务开发较早的引入了XML,所以尝到了许多甜头,在许多项目中利用XML数据交换信息,省去了许多麻烦事,不用制定繁锁的数据格式,利用XML数据易于表达,也利于一线开发者跟踪调试. 笔者先前也曾发表过相关的文章,比如<简析Delphi中的XML编程>一文,有

java的xml编程(sax)

xml|编程 当前SAX API有两个版本.我们用第二版(见资源)来做示例.第二版中的类名和方法名与第一版都有出入,但是代码的结构是一样的. SAX是一套API,不是一个解析器,所以这个代码在XML解析器中是通用的.要让示例跑起来,你将需要一个支持SAX v2的XML解析器.我用Apache的Xerces解析器.(见资源)参照你的解析器的getting-started文档来获得调用一个SAX解析器的资料. SAX API 的说明书通俗易读.它包含了很多的详细内容.而使用SAX API的主要任务就

Java与XML联合编程之DOM篇

dom|xml|编程 DOM初步 DOM是Document Object Model的缩写,即文档对象模型.前面说过,XML将数据组织为一颗树,所以DOM就是对这颗树的一个对象描叙.通俗的说,就是通过解析XML文档,为XML文档在逻辑上建立一个树模型,树的节点是一个个对象.我们通过存取这些对象就能够存取XML文档的内容. 下面我们来看一个简单的例子,看看在DOM中,我们是如何来操作一个XML文档的. 这是一个XML文档,也是我们要操作的对象: <?xml version="1.0"

简析JAVA的XML编程

xml|编程  个人认为这篇文章通俗易懂,值得推荐.    XML作为全球通用的结构化语言,越来越受人们青睐,各种开发平台(比如Microsoft Studio系列.Oracle系列.Inprise Borland系列等)也都把支持XML开发作为宣传口号之一 .由于笔者所从事的电子政务开发较早的引入了XML,所以尝到了许多甜头,在许多项目中利用XML数据交换信息,省去了许多麻烦事,不用制定繁锁的数据格式,利用XML数据易于表达,也利于一线开发者跟踪调试.         笔者先前也曾发表过相关的

JAVA的XML编程

xml|编程 XML作为全球通用的结构化语言,越来越受人们青睐,各种开发平台(比如Microsoft Studio系列.Oracle系列.Inprise Borland系列等)也都把支持XML开发作为宣传口号之一 .由于笔者所从事的电子政务开发较早的引入了XML,所以尝到了许多甜头,在许多项目中利用XML数据交换信息,省去了许多麻烦事,不用制定繁锁的数据格式,利用XML数据易于表达,也利于一线开发者跟踪调试. 笔者先前也曾发表过相关的文章,比如<简析Delphi中的XML编程>一文,有兴趣的读

Java解析XML(一)、SAX

package xml; import java.io.IOException; import java.io.InputStream; import java.util.List; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import model.Book; /** * 使用SAX解析XML文件 */ public class SaxHelper { private stati

java的xml api接口dom4j一简单例子

dom4j感觉有点像js了我们来看一个关于dom4j的一些基本的用法吧. 基本用法 1.获取文档的根节点. Element rootElm = document.getRootElement(); 2.取得某节点的单个子节点. Element memberElm=root.element("member");// "member"是节点名 3.取得节点的文字 String text=memberElm.getText(); 也可以用: String text=roo

jsp 读取XML的类库之DOM解析 xml实例教程

jsp教程 读取XML的类库之DOM解析 xml实例教程 xml文件: <?xml version="1.0" encoding="GB2312"?> <RESULT>   <VALUE>        <NO>A1234</NO>        <ADDR>四川省XX县XX镇XX路X段XX号</ADDR>   </VALUE>   <VALUE>