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
0
投稿

猜你喜欢

  • Java多线程之多种锁和阻塞队列

    2023-09-26 10:31:55
  • 10种简单的Java性能优化

    2023-06-20 20:43:41
  • java实现简单登录界面的实战过程

    2022-02-07 20:19:51
  • Java将String字符串带括号转成List的简单方法

    2022-10-26 18:20:17
  • java 多线程的几种实现方法总结

    2023-10-14 17:43:18
  • Java实现五子棋AI算法

    2022-02-23 05:32:57
  • SpringBoot JS-SDK自定义微信分享的实现

    2023-11-10 05:08:28
  • 浅谈Java消息队列总结篇(ActiveMQ、RabbitMQ、ZeroMQ、Kafka)

    2022-06-13 01:30:40
  • C# 获取IP及判断IP是否在区间

    2021-10-06 23:44:50
  • Java守护线程实例详解_动力节点Java学院整理

    2023-03-29 08:14:30
  • 基于C语言string函数的详解

    2023-06-28 05:33:25
  • IDEA的默认快捷键设置与Eclipse的常用快捷键的设置方法

    2023-04-09 18:32:40
  • Java实现简单QQ聊天工具

    2023-11-25 05:54:52
  • 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
  • Java命令设计模式详解

    2022-07-14 04:38:31
  • SpringBoot RestTemplate 简单包装解析

    2023-02-01 17:02:55
  • Java使用DateTimeFormatter格式化输入的日期时间

    2023-03-09 04:52:38
  • asp之家 软件编程 m.aspxhome.com