开发者学堂课程【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 ("路径")
②第二个参教是格式化类的值