Java DOM4J方式生成XML的方法
作者:陈夏明 时间:2022-07-19 02:32:42
使用DOM4J方式生成XML文件的步骤如下:
引入JAR包
通过DocumentHelper类的createDocument()创建Document对象
通过Document的addElement()方法创建节点
通过Element的addAttribute()方法为节点添加属性
通过Element的setText()方法为节点设置内容
通过OutputFormat的createPrettyPrint()方法创建OutputFormat对象(会自动缩进、换行)
创建XMLWriter对象,将目的文件包装成OutputStream传入构造方法中,并将OutputFormat对象一并传入其中
通过XMLWriter的write()方法生成XML文件,并将Document对象作为参数传入
关闭XMLWriter对象
下面给出完整代码:
package util;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class XMLUtils {
public void CreateXMLByDOM4J(File dest) {
// 创建Document对象
Document document = DocumentHelper.createDocument();
// 创建根节点
Element rss = document.addElement("rss");
//为rss根节点添加属性
rss.addAttribute("version", "2.0");
// 创建channel子节点
Element channel = rss.addElement("channel");
// 创建title子节点
Element title = channel.addElement("title");
// 设置title节点的值
title.setText("<![CDATA[上海移动互联网产业促进中心正式揭牌 ]]>");
// 创建输出格式(OutputFormat对象)
OutputFormat format = OutputFormat.createPrettyPrint();
///设置输出文件的编码
// format.setEncoding("GBK");
try {
// 创建XMLWriter对象
XMLWriter writer = new XMLWriter(new FileOutputStream(dest), format);
//设置不自动进行转义
writer.setEscapeText(false);
// 生成XML文件
writer.write(document);
//关闭XMLWriter对象
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
若想自定义XML文件的编码方式,可使用OutputFormat对象的setEncoding()方法设置:
///设置输出文件的编码
format.setEncoding("GBK");
DOM4J会对某些特殊字符进行自动转义,若不想让DOM4J进行自动转义,我们可以通过XMLWriter的setEscapeText()方法进行设置。
默认情况下,DOM4J会自动进行转义,相当于writer.setEscapeText(true);
若不想让其自动转义,可使用writer.setEscapeText(false);
来源:https://blog.csdn.net/u012325167/article/details/50961548
标签:Java,DOM4J,XML
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java多线程之多种锁和阻塞队列
2023-09-26 10:31:55
![](https://img.aspxhome.com/file/2023/4/81994_0s.png)
10种简单的Java性能优化
2023-06-20 20:43:41
![](https://img.aspxhome.com/file/2023/6/57526_0s.png)
java实现简单登录界面的实战过程
2022-02-07 20:19:51
![](https://img.aspxhome.com/file/2023/2/67152_0s.jpg)
Java将String字符串带括号转成List的简单方法
2022-10-26 18:20:17
![](https://img.aspxhome.com/file/2023/5/66675_0s.png)
java 多线程的几种实现方法总结
2023-10-14 17:43:18
Java实现五子棋AI算法
2022-02-23 05:32:57
SpringBoot JS-SDK自定义微信分享的实现
2023-11-10 05:08:28
![](https://img.aspxhome.com/file/2023/6/59256_0s.jpg)
浅谈Java消息队列总结篇(ActiveMQ、RabbitMQ、ZeroMQ、Kafka)
2022-06-13 01:30:40
![](https://img.aspxhome.com/file/2023/8/60698_0s.jpg)
C# 获取IP及判断IP是否在区间
2021-10-06 23:44:50
Java守护线程实例详解_动力节点Java学院整理
2023-03-29 08:14:30
![](https://img.aspxhome.com/file/2023/5/60175_0s.png)
基于C语言string函数的详解
2023-06-28 05:33:25
IDEA的默认快捷键设置与Eclipse的常用快捷键的设置方法
2023-04-09 18:32:40
![](https://img.aspxhome.com/file/2023/7/78007_0s.png)
Java实现简单QQ聊天工具
2023-11-25 05:54:52
![](https://img.aspxhome.com/file/2023/0/60130_0s.jpg)
MyBatis @Select注解介绍:基本用法与动态SQL拼写方式
2023-07-17 05:56:43
C#键值对容器的介绍
2023-04-14 12:26:56
详解Java面向对象中的继承
2023-10-06 13:26:14
Java内存区域管理详解
2023-11-10 23:44:42
![](https://img.aspxhome.com/file/2023/3/59173_0s.png)
Java命令设计模式详解
2022-07-14 04:38:31
SpringBoot RestTemplate 简单包装解析
2023-02-01 17:02:55
Java使用DateTimeFormatter格式化输入的日期时间
2023-03-09 04:52:38