使用 dom4j 实现在末尾添加节点的操作| 学习笔记

简介: 快速学习使用 dom4j 实现在末尾添加节点的操作。

开发者学堂课程【XML入门 :使用 dom4j 实现在末尾添加节点的操作】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/37/detail/863


使用 dom4j 实现在末尾添加节点的操作

 

内容介绍

一、在第一个 p1 标签末尾添加一个元素<sex>nv</sex>

二、具体步骤

三、总结步骤

 

一、在第一个 p1 标签末尾添加一个元素<sex>nv</sex>

首先添加一个需求,比如在第一个p1标签末尾添加一个元素<sex>nv</sex>。

<person>

<p1>

<name>zhangsan</name>

<age>20<age>

</p1>

<p1>

<name>list</name>

<age>30</age>

</p1>

</person>

操作步骤如下:

1. 首先在 Java 创建一个方法,这个方法实现的就是在末尾添加元素操作。

2. 再写一个 public static void addSex() throws Exception{}

3. 然后在这里面写上操作步骤。

(1) 创建解析器

(2) 得到 document

(3) 得到根节点

(4) 获取到第一个 p1

(5) 在 p1 下面添加元素

(6) 在添加完成之后的元素下面添加文本

(7) 回写 xml(因为是对 xml 文件内进行操作)

 

二、具体步骤

1. 创建解析器

SAXReader  reader = new SAXReader( ) ;

2. 得到 document

Document  document = reader . read("src/p1. xml");

3. 得到根节点

Element  root = document. getRootElement();

4. 得到第一个 p1 元素

Element p1 = root. element(“p1” );

5. 在 p1 下面直接添加元素

Element  sex1 = p1. addElement(“sex”);

注意:这个操作与之前所说的操作和方法不一样,之前用 jip 时需要先创建,但现在不需要创建,直接在下面添加元素。

6. 在 sex 下添加文本

sex1.setText(“nv”);

注意:当执行完前两步骤后,就表示在 p1 末尾已经添加了一个 sex,并且 sex 值为 nv,所以会发现这个方法比 jip 简单多了,不用创建而直接来添加。

7. 回写 xml

(1) 第一个方法:

OutputFormat  format  =  outputFormat.createPrettyPrint();

//可以有缩进的效果。

这个方法是静态的,直接用outputFormat.createPrettyPrint进行格式化。

(2) 第二个方法:

OutputFormat format =outputFormat.createCompactFormat();

//这个方法有压缩的效果,一般运用在计算机里,企业用第一种方法。

XMLWriter  xmlwriter  =  new XMLWriter(new Fileoutputstream("src/p1.xml"),format);

xmlWriter.write(document);

//把内存中的数写入到文件里去,括号里传入 document,这样就把文档传入到xml 文件里去。

xmlWriter.close();

//关流,注意流一旦打开就要关闭

①首先用到 XMLWriter 这个类,在 API 查一下这个类,XMLWriter 是一个普通类。

②普通类怎么 new?

首先看它的构造方法,Constructor Summary 里有很多构造方法,一般运用XMLWriter(OutputStream out, OutputFormat format)。OutputStream 是用文件流代替,括号内传入文件的路径。OutputForma 表示格式化,比如操作添加完成之后,xml 文件里的格式就乱了,OutputForma 提供了格式化操作,可对 xml 文件直接进行格式化,做出缩进的效果,不至于格式混乱。点进 OutputForma 可见这是一个普通类,但注意这不需要构造方法。Method Summary,creatpertty 表示格式化文件,creatCompactFormat 表示压缩文件,这两个是静态方法。

(3)怎么使用静态方法:

直接类名.方法,运用这两个方法就可进行格式化操作。

首先调用一下,在主函数里增加 addSex();, 再看原始文件里没有效果,然后运行下java 文件(下面没有错误),返回 xml 文件效果就出现了。

 

三、总结步骤

1、创建解析器

2、得到 document

3、得到根节点

4、获取到第一个 p1:使用 element 方法

5、在p1下面添加元素:在 p1 上面直接使用 addElement ("标签名称")方法,返回一个 Element。

6、在添加完成之后的元素下面添加文本:在 sex 上直接使用 setText(“文本内容”)方法

7、回写 xml

(1) 格式化  outputFormat,使用 createPrettyPrint 方法,表示一个漂亮的格式

(2) 使用类 XMLWriter 直接 new 这个类,传递两个参数

①第一个参数是 xml 文件路径 new Fileoutputstream ("路径")

②第二个参教是格式化类的值

相关文章
|
1月前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
XML DOM 遍历节点树
|
1月前
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)
|
18天前
|
JavaScript
HTML DOM 节点树
HTML DOM 节点是指在 HTML 文档对象模型中,文档中的所有内容都被视为节点。整个文档是一个文档节点,每个 HTML 元素是元素节点,元素内的文本是文本节点,属性是属性节点,注释是注释节点。DOM 将文档表示为节点树,节点之间有父子和同胞关系。
|
18天前
|
JavaScript
HTML DOM 节点
HTML DOM(文档对象模型)将HTML文档视为节点树,其中每个部分都是节点:文档本身是文档节点,HTML元素是元素节点,元素内的文本是文本节点,属性是属性节点,注释是注释节点。节点间存在父子及同胞关系,形成层次结构。
|
28天前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
XML DOM 遍历节点树
|
27天前
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)
|
29天前
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)
|
1月前
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)
|
1月前
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)
|
1月前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
XML DOM 遍历节点树