Java解析XML介绍
XML解析器提供了访问或修改用来表示数据的xml文件的能力。Java中提供了多种方式来解析xml文件。
主要分为两类,包括解析XML文档,XML转换成对象;
一、解析XML文档
DOM
DOM解析是将xml整个读入内存中,并在内存中以DOM树的形式存储。它是与平台无关的官方解析方式,所以不止在Java平台可以用DOM解析,在其他的平台也可以使用。
优点:
树形结构,直观,易于理解,读取方便,代码易编写。
树形结构保存在内存中,容易修改。
缺点:
因为DOM是将xml文件整个读入内存中,所以对内存消耗大,在xml文件较大时,很容易造成内存溢出的情况。
SAX
SAX解析是Java独有的xml文件解析方式,是基于事件驱动的,每当Java程序读到xml文件中的标签头或读到标签结尾时,会触发相应的事件进行业务的处理。
优点:
基于事件驱动,对内存消耗小。
适用于只需要处理xml文件中的数据的情况。
缺点:
因为是基于事件驱动的,所以需要针对每一种事件都要编写相应的处理方法,编码比较繁琐。
因为SAX并不是一次性把xml读入内存中而是依次读入xml的数据的,所以不能同时操作同一个xml文件中的多个不同的数据。
JDOM
DOM和SAX是Java提供的两种基础的解析xml的方式,而JDOM是在基础方法上的扩展,要使用JDOM解析xml文件,需要额外导入jar包。
优点:
仅使用具体类而不是用接口。
JDOM的API大量使用了Collections类,操作更加方便。
DOM4J
DOM4J和JDOM一样,是在Java提供的基础解析xml方式上的扩展,要使用DOM4J也需要导入额外的jar包。
优点:
功能强大,能够处理更加复杂的xml文档,包含一些超出基本xml文档的功能。
性能优异,对处理较大的xml文件尤为明显。
二、XML与Java对象的转化
Digester - xml和Java对象之间进行转换。
JAXB - xml和Java对象之间进行转换。
XStream - 一个在xml和Java对象之间进行转换的库
解析XML文档:
(四种方式)http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/17/3082949.html
http://www.cnblogs.com/java-class/p/6901910.html
XML转换成Java对象:
https://leokongwq.github.io/2017/02/18/java-xml-parser.html
Java解析XML介绍的更多相关文章
- Java 解析 XML
Java 解析 XML 标签: Java基础 XML解析技术有两种 DOM SAX DOM方式 根据XML的层级结构在内存中分配一个树形结构,把XML的标签,属性和文本等元素都封装成树的节点对象 优点 ...
- JAVA解析XML的四种方式
java解析xml文件四种方式 1.介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这 ...
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
[目录] 一.[基础知识——扫盲] 二.[DOM.SAX.JDOM.DOM4j简单使用介绍] 三.[性能测试] 四.[对比] 五.[小插曲XPath] 六.[补充] 关键字:Java解析xml.解析x ...
- Java解析XML文档(简单实例)——dom解析xml
一.前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object ...
- 【Java】详解Java解析XML的四种方法
XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML.本文将详细介绍用Java解析XML的四种方法. AD: XML现在已经成为一种通用的数据交换格式,它的平台无关性,语 ...
- Java解析XML之Dom4j
Java解析XML文件的方法有多种,个人感觉最常用的是使用Dom4j来解析XML文件.下面就简单介绍下Dom4j的基础使用. Dom4j需要jar包的支持,大家可以从网络上下载,如dom4j-1.6. ...
- XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax
本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来 ...
- Java解析XML的四种方法详解 - 转载
XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML.本文将详细介绍用Java解析XML的四种方法 在做一般的XML数据交换过程中,我更乐意传递XML字符串,而不是格式化 ...
- java解析xml汇总
[目录] 一.[基础知识——扫盲] 二.[DOM.SAX.JDOM.DOM4j简单使用介绍] 三.[性能测试] 四.[对比] 五.[小插曲XPath] 六.[补充] 关键字:Java解析xml.解析x ...
随机推荐
- UVALive 3263: That Nice Euler Circuit (计算几何)
题目链接 lrj训练指南 P260 //==================================================================== // 此题只需要考虑线 ...
- git的初步研究1
工作中很多项目再往git上迁移,所以打算研究下git git是个版本控制系统 理解git工作区.暂存区.版本库的概念 工作区:在电脑中能看到的目录 暂存区:index即索引 即首先add加入暂存区 c ...
- mysql INNER JOIN关键字 语法
mysql INNER JOIN关键字 语法 作用:在表中存在至少一个匹配时,INNER JOIN 关键字返回行.大理石平台维修 语法:SELECT column_name(s) FROM table ...
- 【bzoj2724】[Violet 6]蒲公英
*题目描述: *输入: 修正一下 l = (l_0 + x - 1) mod n + 1, r = (r_0 + x - 1) mod n + 1 *输出: *样例输入: 6 3 1 2 3 2 1 ...
- 在Python中,如何将一个字符串数组转换成整型数组
https://blog.csdn.net/xiangchengguan/article/details/78987041 arr = ['] arr = list(map(int,arr)) pri ...
- which statement is true for the class java.util.ArrayList?
A.集合中的元素是有序的 对 B.集合被保证为不可变的 错 C.集合中的元素被保证为唯一的 错 有序的 所以不唯一 D.集合中的元素使用一个唯一的键来存取 错 没有键 E.集合中的元 ...
- Linux下查看分区内目录及文件占用空间容量
转载linux下使用 du查看某个文件或目录占用磁盘空间的大小 du -ah --max-depth=1 这个是我想要的结果 a显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘 ...
- EXCEL生成随机密码函数
CHAR(INT(RAND()*26+65))&INT(RAND()*9+1)&CHAR(INT(RAND()*26+97))&INT(RAND()*900+100)& ...
- 002-Spring4 快速入门-项目搭建、基于注解的开发bean,Bean创建和装配、基于注解的开发bean,Bean初始化销毁、Bean装配,注解、Bean依赖注入
一.项目搭建 1.项目创建 eclipse→project explorer→new→Project→Maven Project 默认配置即可创建项目 2.spring配置 <dependenc ...
- 类Runtime
Runtime类的概述和使用 Runtime类概述 每个Java应用程序都有一个Runtime类实例,使应用程序能够与其运行的环境相连接.可以通过getRuntime方法获取当前运行时. 应用程序不能 ...
