我们学习dom4j为的就是使用它来创建XML文档、读取文档等更为方便,下面通过一个实例来展示如何通过dom4j去创建XML文档。展示怎样通过两种方式去创建元素,可以直接通过addElement方法返回一个Element,也可以是DocumentHelper的createElement方法创建Element对象,属性、注释等也类似。

创建过程如下:

1、创建一个Document对象(即一个XML文档对象),如下:

1
Document document = DocumentHelper.createDocument();

通过上面这句定义一个 XML 文档对象。

2、在创建好的Document对象上面创建一个根节点(即XML的根节点),代码如下:

1
Element root = document.addElement("根节点名称");

通过这句定义一个 XML 元素,这里添加的是根节点。

Element 有几个重要的方法:
    addComment(String comment)   添加注释

addAttribute(QName qName, String value)

addAttribute(String name, String value)  添加属性

addElement(String name) 添加子元素

3、最后通过 XMLWriter 生成物理文件,默认生成的 XML 文件排版格式比较乱,可以通过 OutputFormat 类格式化输出,默认采用 createCompactFormat()显示比较紧凑, 最好使用 createPrettyPrint()。

实例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
public class TestDom4j {
    public static void main(String[] args) {
        // 创建文档。
        Document document = DocumentHelper.createDocument();
        // 设置文档DocType,这里为了举例,添加hibernate的DocType
        document.addDocType("hibernate-configuration",
                "-//Hibernate/Hibernate Configuration DTD 3.0//EN",
                "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd");
        // 文档增加节点,即根节点,一个文档只能有一个根节点,多加出错
        Element root = document.addElement("skills");
        // 添加注释
        root.addComment("第一个技能");
        // 根节点下添加节点
        Element first = root.addElement("skill");
        // 节点添加属性
        first.addAttribute("name""独孤九剑");
        // 节点下添加节点
        Element info = first.addElement("info");
        // 节点设置内容数据
        info.setText("为独孤求败所创,变化万千,凌厉无比。其传人主要有风清扬、令狐冲。 ");
         
        // 同理增加其他节点,内容,属性等
        Element second = root.addElement("skill");
        second.addAttribute("name""葵花宝典");
         
        Element info2 = second.addElement("info");
        info2.setText("宦官所创,博大精深,而且凶险至极。练宝典功夫时,首先要自宫净身。 ");
         
        /**
        * 第二种方法增加节点,内容,属性等。先创建节点,属性,然后使用add加入。
        */
        // 创建节点
        Element third = DocumentHelper.createElement("skill");
        // 将节点加入到根节点中
        root.add(third);
        // 创建属性,第一个参数指定了拥有者,也可以为null,指定拥有者
        Attribute name = DocumentHelper.createAttribute(third, "name""北冥神功");
        // 将属性加入到节点上
        third.add(name);
        // 创建子节点并加入到节点中
        Element info3 = DocumentHelper.createElement("info");
        info3.setText("逍遥派的顶级内功之一,能吸人内力转化为自己所有,威力无穷。 ");
        third.add(info3);
         
        try {
            // 创建格式化类
            OutputFormat format = OutputFormat.createPrettyPrint();
            // 设置编码格式,默认UTF-8
            format.setEncoding("UTF-8");
            // 创建输出流,此处要使用Writer,需要指定输入编码格式,使用OutputStream则不用
            FileOutputStream fos = new FileOutputStream("d:/skills.xml");
            // 创建xml输出流
            XMLWriter writer = new XMLWriter(fos, format);
            // 生成xml文件
            writer.write(document);
            writer.close();
        catch (Exception e) {
            e.printStackTrace();
        }
         
    }
}

生成 XML 文件内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD
3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<skills>
    <!--第一个技能-->
    <skill name="独孤九剑">
        <info>为独孤求败所创,变化万千,凌厉无比。其传人主要有风清扬、令狐冲。 </info>
    </skill>
    <skill name="葵花宝典">
        <info>宦官所创,博大精深,而且凶险至极。练宝典功夫时,首先要自宫净身。 </info>
    </skill>
    <skill name="北冥神功">
        <info>逍遥派的顶级内功之一,能吸人内力转化为自己所有,威力无穷。 </info>
    </skill>
</skills>

 

转载于:https://www.cnblogs.com/frankyou/p/7121266.html

使用Dom4j创建xml文档相关推荐

  1. Dom4j 解析Xml文档及XPath查询 学习笔记

    本文查阅方法:     1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题     2.快捷"查找" -- 在当前浏览器页面,按键 "Ctrl+F" 按键 ...

  2. Dom4j 解析Xml文档及 XPath查询 学习笔记

    2019独角兽企业重金招聘Python工程师标准>>> 本文查阅方法:     1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题     2.快捷"查找" ...

  3. 分别使用dom和dom4j解析XML文档

    1.dom和dom4j的特点 dom是基于XML的树结构来完成解析的.dom解析XML文档时,会根据读取的文档,构建一个驻留内存的树结构,然后就可以使用dom接口来对XML文档进行增删查改等操作.do ...

  4. 【学习笔记】关于DOM4J:使用DOM4J解析XML文档

    一.概述 DOM4J是一个易用的.开源的库,用于XML.XPath和XSLT中.采用了Java集合框架并完全支持DOM.SAX.和JAXP. DOM4J最大的特色是使用大量的接口,主要接口都在org. ...

  5. 字符串创建XML文档

    创建XML文档,方法与形式是多样的,下面Insus.NET再例举两种,可供参考. XmlDocument(namespace:System.Xml)在实例化之后,它有一个方法LoadXml(),可以把 ...

  6. 使用Qt创建XML文档及XML文档的增删改

    目录名字 使用Qt创建XML文档及XML文档的增删改 XML文档的操作 :QXml + QFile+QTextStream 创建XML的一般步骤: XML 文档的操作(添加.查找.更新.删除) 添加的 ...

  7. Javaweb使用dom4j解析xml文档的一般姿势

    使用dom4j解析xml文档之前必须引入jar public class TestDom4j {@Testpublic void testReadWebXML() {try {// 1.获取解析器SA ...

  8. C#中XmlDocument读取和创建 XML 文档

    系列文章目录 C#处理XML 数据的技术方法总结 XmlDocument读取和创建 XML 文档 XmlWriter类提供一种快速非缓存的只进 XML 数据生成方式 XmlReader类提供一种快速非 ...

  9. maven中用dom4j解析xml文档

    1.需求分析 关于dom4j的详细使用方法请参考:https://blog.csdn.net/qq_41860497/article/details/84339091 在xml中存储了过滤器的的初始化 ...

  10. 使用Dom4j对XML文档创建与解析

    创建XML文件: public class Dom4jCreateXml {public void testCreatXml() {//创建文档对象Document document = Docume ...

最新文章

  1. ApplicationContextAware 接口
  2. 网上开店失败的7大原因
  3. How is target My note application rendered - renderManager
  4. 抖音右上角一个小黄点是什么_抖音官方入驻视频号,释放了一个什么样的信号?...
  5. 数据结构之堆:堆的排序,Python代码实现——13
  6. 图书ISBN号码检验(洛谷P1055题题解,Java语言描述)
  7. tensorflow入门指南
  8. Java-toString
  9. spark读取hdfs数据本地性异常
  10. 416.分割等和子集
  11. intel h61 linux驱动下载,intel h61主板驱动
  12. 机器学习中的 Shapley 值怎么理解?
  13. 【网络原理】详解访问域名 www.baidu.com 中的DNS解析过程
  14. Spark小文件合并
  15. gis 数据框裁剪_【计算摄影】计算机如何学会自动裁剪图片(自动构图)?
  16. Java基础学习之函数式编程Comsumer接口(JDK8)
  17. 过滤器Filter的介绍
  18. excel单元格内的数值向上、向下取整
  19. Windows 下PowerShell 美化之旅(极其简单)
  20. Ubuntu16.04下caffe CPU版的详细安装步骤

热门文章

  1. 二叉树进阶之寻找一棵二叉树中的最大二叉搜索子树
  2. linux shell数据重定向(输入重定向与输出重定向)详细分析 下(转)
  3. struts响应用户请求的工作流程
  4. Hibernate相关内容
  5. 参考阿里规范,优秀的 Java 项目代码该如何分层?
  6. Spring Cloud 2020 版本最佳实践,你落伍了!
  7. 一次 MySQL 索引面试,被面试官怼的体无完肤!
  8. Spring Cloud+Spring Boot高频面试题解析
  9. Android上SQLite的性能优化问题
  10. Java程序员不容错过的开发趋势