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 }
结果:
【当你用心写完每一篇博客之后,你会发现它比你用代码实现功能更有成就感!】
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了