解析XML的几种方式的原理与特点:DOM、SAX、JDOM、DOM4J
XML是一种通用的数据交换格式,它的平台无关性、语言无关性、系统无关性、给数据集成与交互带来了极大的方便。XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已。
XML的解析方式分为四种:1、DOM解析;2、SAX解析;3、JDOM解析;4、DOM4J解析。其中前两种属于基础方法,是官方提供的平台无关的解析方式;后两种属于扩展方法,它们是在基础的方法上扩展出来的,只适用于java平台。
一、DOM解析
DOM的全称是Document Object Model,也即文档对象模型。在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个对象模型的操作,来实现对XML文档数据的操作。通过DOM接口,应用程序可以在任何时候访问XML文档中的任何一部分数据,因此,这种利用DOM接口的机制也被称作随机访问机制。
DOM接口提供了一种通过分层对象模型来访问XML文档信息的方式,这些分层对象模型依据XML的文档结构形成了一棵节点树。无论XML文档中所描述的是什么类型的信息,即便是制表数据、项目列表或一个文档,利用DOM所生成的模型都是节点树的形式。也就是说,DOM强制使用树模型来访问XML文档中的信息。由于XML本质上就是一种分层结构,所以这种描述方法是相当有效的。
DOM树所提供的随机访问方式给应用程序的开发带来了很大的灵活性,它可以任意地控制整个XML文档中的内容。然而,由于DOM分析器把整个XML文档转化成DOM树放在了内存中,因此,当文档比较大或者结构比较复杂时,对内存的需求就比较高。而且,对于结构复杂的树的遍历也是一项耗时的操作。所以,DOM分析器对机器性能的要求比较高,实现效率不十分理想。不过,由于DOM分析器所采用的树结构的思想与XML文档的结构相吻合,同时鉴于随机访问所带来的方便,因此,DOM分析器还是有很广泛的使用价值的。
优点:
1、形成了树结构,有助于更好的理解、掌握,且代码容易编写。
2、解析过程中,树结构保存在内存中,方便修改。
缺点:
1、由于文件是一次性读取,所以对内存的耗费比较大。
2、如果XML文件比较大,容易影响解析性能且可能会造成内存溢出。
二、SAX解析
SAX的全称是Simple APIs for XML,也即XML简单应用程序接口。与DOM不同,SAX提供的访问模式是一种顺序模式,这是一种快速读写XML数据的方式。当使用SAX分析器对XML文档进行分析时,会触发一系列事件,并激活相应的事件处理函数,应用程序通过这些事件处理函数实现对XML文档的访问,因而SAX接口也被称作事件驱动接口。
优点:
1、采用事件驱动模式,对内存耗费比较小。
2、适用于只处理XML文件中的数据时。
缺点:
1、编码比较麻烦。
2、很难同时访问XML文件中的多处不同数据。
三、JDOM解析
特征:
1、仅使用具体类,而不使用接口。
2、API大量使用了Collections类。
四、DOM4J解析
特征:
1、JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能。
2、它使用接口和抽象基本类方法。
3、具有性能优异、灵活性好、功能强大和极端易用的特点。
4、是一个开放源码的文件
解析XML的几种方式的原理与特点:DOM、SAX、JDOM、DOM4J相关推荐
- XML的四种解析器(dom,sax,jdom,dom4j)原理及性能比较
6月20日 XML的四种解析器(dom,sax,jdom,dom4j)原理及性能比较 1:DOM DOM 是用与平台和语言无关的方式表示 XML 文档的官方 W3C 标准.DOM 是以层次结 ...
- java解析xml的几种方式
java解析xml的几种方式 博客分类: java基础备忘-好记性不然烂笔头 XMLJava应用服务器数据结构编程 第一种:DOM. DOM的全称是Document Object Model,也即文 ...
- Java解析Xml的三种方式总结
转自:http://blog.csdn.net/zjf280441589/article/details/50613881 XML解析技术有两种 DOM SAX DOM方式 根据XML的层级结构在内 ...
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
http://blog.csdn.net/smcwwh/article/details/7183869 关键字:Java解析xml.解析xml四种方法.DOM.SAX.JDOM.DOM4j.XPath ...
- java映射文件是哪一种xml_java解析xml的几种方式哪种最好?
满意答案 gjek59ug 2013.10.10 采纳率:52% 等级:12 已帮助:9223人 (1)DOM解析 DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组 ...
- Android解析XML的三种方式
在Android中提供了三种解析XML的方式:DOM(Document Objrect Model),SAX(Simple API XML),以及Android推荐的Pull解析方式. 如图: 本篇博 ...
- JAVA解析xml的五种方式比较
1)DOM解析 DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组织节点和信息片段,映射XML文档的结构,允许获取和操作文档的任意部分,是W3C的官方标准[优点]①允许应用 ...
- java解析xml文件四种方式介绍、性能比较和基本使用方法
2019独角兽企业重金招聘Python工程师标准>>> 一.基本介绍: 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准. ...
- php 解析返回的xml,php解析xml的几种方式
php提供几种解析xml的类或方法,包括:Xml parser. SimpleXML,.XMLReader,.DOMDocument. XML Expat Parser: XML Parser使用Ex ...
最新文章
- python 类的功能,字符串字节,嵌套等相关学习总结
- win7 php mysql扩展名_Win7 配置Apache+PHP+Mysql环境
- mysql和tdengine_TDengine 基本操作
- 交换机开发(四)—— ARP 基础知识解析
- Centos查看用户登陆记录
- JVM :执行jinfo命令报错Can't attach symbolicator to the process
- s5pv210 linux内核移植,S5PV210(TQ210)学习笔记——内核移植与文件系统构建之二
- 20201023:力扣第37场双周赛(上)
- 【学习笔记】bootstrap之CSS组件
- svn创建分支和合并
- 用devc++表白_【吉利表白墙】19级倪yl,风吹起如花般破碎的流年,而你的笑容摇晃摇晃,成为我命途中最美的点缀...
- java ckfinder中文_CKfinder中文乱码的解决.
- 【大数据作业02】HDFS中的名称节点和数据结点的具体功能
- Android应用性能优化系列视图篇——隐藏在资源图片中的内存杀手
- 中职网络安全隐藏信息探索思路以及讲解
- vi 放弃更改退出 保存更改退出。
- 查验身份证 浙大陈越习题
- 十年测试经验的阿里p10讲解python初阶:函数和模块 python全栈自动化测试系类4-2
- 5分钟LaTex快速入门(超简洁全面)
- Java开发主流框架有哪些?