Java DOM4J方式生成XML的方法
作者:陈夏明 发布时间:2022-07-19 02:32:42
标签:Java,DOM4J,XML
使用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模拟银行ATM机操作(基础版),供大家参考,具体内容如下实现的功能需求:修改密码之后,就会自动退出登录,再重新登录,若登录成功才能验
- 本篇博客要分享的一个效果是实现广告Banner轮播效果,这个效果也比较常见,一些视频类应用就经常有,就拿360影视大全来举例吧:
- 一 为什么要使用线程池对于操作系统而言,创建一个线程的代价是十分昂贵的, 需要给它分配内存、列入调度,同时在线程切换时要执行内存换页,清空
- LeetCode -- Path Sum III分析及实现方法题目描述:You are given a binary tree in whi
- 把idea中的项目导入github仓库中步骤详解做完项目进行云端保存是很必要的,我都是存放在github中。所以废活少说直接开始啦。前提是已
- 什么是ContentType?我们知道浏览器可以处理各种各样的内容,比如:HTML、XML、JPG、Flash等等,那么浏览器是如何区分它们
- 昨天有朋友在公众号发消息说看不懂await,async执行流,其实看不懂太正常了,因为你没经过社会的毒打,没吃过牢饭就不知道自由有多重要,没
- 本文实例讲述了Android编程实现自定义手势的方法。分享给大家供大家参考,具体如下:之前介绍过如何在Android程序中使用手势,主要是系
- 本文实例为大家分享了SpringMVC实现上传下载文件的具体代码,供大家参考,具体内容如下一、SpringMVC专门提供了CommonsMu
- 本文实例为大家分享了C# DateTime预设可选的日期范围的相关代码,可以选择本年度、本季度、本月等,供大家参考,具体内容如下效果:大家在
- Java中Collections.sort()的使用在日常开发中,很多时候都需要对一些数据进行排序的操作。然而那些数据一般都是放在一个集合中
- 本文实例讲述了Android编程之利用服务实现 * 听的方法。分享给大家供大家参考,具体如下:1. 启动模拟器,部署应用2. 利用模拟器控制
- 上一篇:瑞吉外卖项目:新增员工一. 员工信息分页查询1. 需求分析当系统中的用户越来越多页面展示不完整,我们需要通过实现分页的方式去展示员工
- 1、用字符串分隔: using System.Text.RegularExpressions; string str="aaajs
- 解决项目中表单重复提交的问题,在平常的项目中有以下几种可能出现表单重复提交的情况,比如说:1.由于服务器缓慢或者网络延迟的原因,重复点击提交
- 前言在我们的项目中,通常会把数据存储到关系型数据库中,比如Oracle,SQL Server,Mysql等,但是关系型数据库对于并发的支持并
- 什么是Aop主要介绍springboot中aop的使用,用过Spring框架的都知道,aop是spring框架的两大核心功能之一,还有一个就
- import android.content.Context;import android.graphics.Canvas;import a
- 原生系统Android8.1上,WiFi上出现感叹号,此时WiFi可正常访问。原因这是Android 5.0引入的网络评估机制:就是当你连上
- 本文实例讲述了Android开发之获取LayoutInflater对象的方法。分享给大家供大家参考,具体如下:在写Android程序时,有时