Dom4j向XML中增加节点与属性——(四)

先获取到节点,然后在节点山添加Element
添加节点 添加属性 设置开始标签与结束标签的值

book.addElement("描述").addAttribute("name", "xxxxxx").setText("一本好书!");

解决中文乱码问题:

  输出流最好用字节流(Stream),字节流可以控制编码格式,Writer是字符流。

  如果xml中编码是utf-8,格式器也用utf-8。格式器与xml文档的编码格式要一致。

 

复制代码
 1 package Dom4j_XMLParser;
 2 
 3 import java.io.File;
 4 import java.io.FileOutputStream;
 5 import java.io.FileWriter;
 6 
 7 import org.dom4j.Attribute;
 8 import org.dom4j.Document;
 9 import org.dom4j.DocumentException;
10 import org.dom4j.Element;
11 import org.dom4j.io.OutputFormat;
12 import org.dom4j.io.SAXReader;
13 import org.dom4j.io.XMLWriter;
14 import org.junit.Test;
15 
16 public class Demo2 {
17 
18     // 在第一本书后增加一个 <描述 name="xxxxxx">一本好书!</描述>
19     @Test
20     public void test1() throws Exception {
21         // 创建SAX读取器
22         SAXReader reader = new SAXReader();
23         // 加载文档
24         Document document = reader.read(new File("src/book.xml"));
25         // 获取根节点(书架)
26         Element root = document.getRootElement();
27         // 获取根节点下的书节点,带s返回一个数组,再取数组的第二个
28         Element book = (Element) root.elements("书").get(0);
29         // 获取树下面的书名属性
30         book.addElement("描述").addAttribute("name", "xxxxxx").setText("一本好书!");
31 
32 //        格式化输出流,同时指定编码格式。也可以在FileOutputStream中指定。
33         OutputFormat format = OutputFormat.createPrettyPrint();
34         format.setEncoding("utf-8");
35 
36         XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),format);
37         writer.write(document);
38         writer.close();
39     }
40 
41 }
复制代码

结果:

posted @   QiaoZhi  阅读(6756)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示