天天看点

java基础 - XML操作

 ​

详细代码参考(必看)

​​XML解析——Java中XML的四种解析方式​​

1.XML全称是"(扩展标记语言)"

是一种用来结构化文档和数据的通用且适应性强的格式,它不仅仅可以用于 WEB,而且可以被用于任何地方。说的明白一点就是:XML 被设计用来传输和存储数据的。

在java中,很多配置文件,都是xml文件,比如说spring,或者mybatis.

XML的学习和使用都很简单,我们先看它的语法.

1.1 所有 XML 元素都须有关闭标签

1.2 XML 标签对大小写敏感

1.3 XML 必须正确地嵌套

1.4 XML 文档必须有根元素

XML 文档必须有一个元素是所有其他元素的父元素。该元素称为根元素。

1.5 XML 的属性值须加引号

1.6 特殊字符的使用方式(又叫实体引用)

在 XML 中,有 5 个预定义的实体引用:

1.7 XML 中的注释

1.8 CDATA段

格式:< ! [ CDATA [ 文本内容 ] ] >

特殊标签中的实体引用都被忽略,所有内容被当成一整块文本数据对待.适用于有多个特殊字符的情况.

语法看完了,我们看看用法.

2.xml的解析

xml的解析方式有多种,在Java中,我们只说两种最常用的方式.

2.1 DOM解析方式

DOM:(Document Object Model, 即文档对象模型) 是 W3C 组织推荐的处理 XML 的一种方式。DOM解析器在解析XML文档时,会把文档中的所有元素,按照其出现的层次关系,解析成一个个Node对象(节点)。其优缺点分别为:

优点:把xml文件在内存中构造树形结构,可以遍历和修改节点

缺点: 如果文件比较大,内存有压力,解析的时间会比较长

2.2 SAX解析方式

SAX(simple API for XML)是一种XML解析的替代方法。相比于DOM,SAX是一种速度更快,更有效的方法。它逐行扫描文档,一边扫描一边解析。而且相比于DOM,SAX可以在解析文档的任意时刻停止解析。 其优缺点分别为:

优点: 解析可以立即开始,速度快,没有内存压力

缺点: 不能对节点做修改

2.3 读取XML

Java中常用的操作xml的一个包是dom4j的包.

dom4j是一个非常优秀的Java XML API,具有性能优异、功能强大和极端易用的特点,同时它也是一个开放源代码的软件。使用dom4j来实现对XML文档的解析,详细过程如下:

2.3.1 使用dom4j需要导入dom4j对应的jar包。

2.3.2 创建SAXReader类的对象来实现读取XML文档,代码如下:

2.3.3 使用SAXReader类的read方法获取Document对象,Document 对象是一棵文档树的根,可为我们提供对文档数据的最初(或最顶层)的访问入口,代码如下:

2.3.4 使用Document对象的getRootElement方法获取要解析的XML文档的根元素,该方法返回值类型为Element。Element 对象表示 XML文档中的元素。元素可包含属性、其它元素或文本。如果元素含有文本,则在文本节点中表示该文本,代码如下:

2.3.5 使用Element对象提供的方法继续解析XML文档,例如:其elements方法用来获取当前元素下的所有子元素,代码如下:

2.3.6 最后遍历list集合即可.

2.4 写一个XML文件.

2.4.1 使用DocumentHelper类的静态方法createDocument创建文档对象Document,代码如下所示:

2.4.2 使用Document类的addElement方法,创建根节点<list>,代码如下所示:

2.4.3 添加子元素

然后为one这个元素赋值

2.4.4 :生成文件

至此.xml 读取与写出,阐述完毕.