欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

Java DOM4J方式生成XML的方法

时间:2021-07-14 07:55:58|栏目:JAVA代码|点击:

使用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);

上一篇:Spring5中的WebClient使用方法详解

栏    目:JAVA代码

下一篇:Java实现自定义阻塞队列

本文标题:Java DOM4J方式生成XML的方法

本文地址:http://www.codeinn.net/misctech/156928.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有