使用Dom4j创建xml文档
我们学习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 DTD3.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>
|
使用Dom4j创建xml文档的更多相关文章
- dom4j解析xml文档全面介绍
一.dom4j介绍 dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点, ...
- 使用dom4j解析XML文档
dom4j的包开源包,不属于JDK里面,在myeclipse中要单独导入在项目中,这里不累赘了 做这个过程,很慢,因为很多方法没用过不熟悉,自己得去查帮助文档,而且还得去试,因为没有中文版,英文翻译不 ...
- DOM4J解析XML文档
Tip:DOM4J解析XML文档 Dom4j是一个简单.灵活的开放源代码的库.Dom4j是由早期开发JDOM的人分离出来而后独立开发的.与JDOM不同的是,dom4j使用接口和抽象基类,虽然Dom4j ...
- 使用DOM4J解析XML文档,以及使用XPath提取XML文档
使用DOM4J解析XML文档 需要首先下载DOM4J工具包.这是个第三方工具包 在使用DOM4J解析的时候需要导入 DOM4J的JAR包 下载DOM4J工具包->在MyEclipse中新建lib ...
- 源生API解析XML文档与dom4j解析XML文档
一.XML语言 XML是一种可扩展的标记语言,是一种强类型的语言,类似HTML(超文本标记语言,是一种弱类型的语言).XML是一种通用的数据交换格式(关系型数据库),综上所诉:XML可以传输数据,也可 ...
- Java四种读取和创建XML文档的例子教程
四种方法解析XML文档:Dom.SAX.JDOM.dom4j 1.了解XML XML,即可扩展标记语言(Extensible Markup Language),标准通用标记语言的子集 ...
- dom4j读写XML文档
dom4j 最常用最简单的用法(转) 要使用dom4j读写XML文档,需要先下载dom4j包,dom4j官方网站在 http://www.dom4j.org/目前最新dom4j包下载地址:http:/ ...
- 使用DOM4J生成XML文档
package xml; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; imp ...
- C# 创建XML文档
有些时候我们需要生成一个xml文档作为数据交换的容器.当然我们用拼接字符串的方法来进行构建xml,但是这种方法虽然简单有效,但是如果xml文档结构过于复杂,拼接字符串会让人眼花缭乱.这时候就需要C#给 ...
随机推荐
- Emgu CV
摄像头 Capture _capture = new Capture(0); _capture.SetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PR ...
- Curl操作Elasticsearch的常用方法
Elasticsearch对于文档操作,提供了以下几种API,本文就说明如何使用curl方式来调用这些API. API种类 单文档操作API 1.* Index API 索引文档 * 为文档创建索引 ...
- Logstash中如何处理到ElasticSearch的数据映射
Logstash作为一个数据处理管道,提供了丰富的插件,能够从不同数据源获取用户数据,进行处理后发送给各种各样的后台.这中间,最关键的就是要对数据的类型就行定义或映射. 本文讨论的 ELK 版本为 5 ...
- [转]MongoDB基本使用
转自 : http://www.cnblogs.com/TankMa/archive/2011/06/08/2074947.html 成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可 ...
- 节约内存,请使用标签页管理工具:onetab、better onetab
OneTab可以管理chrome和firefox的标签页,把暂时不用的标签页收藏起来,形成一个列表,当然,可以对列表进行分类管理,以方便后续打开查看. 这样就不用打开很多tab,占用大量内存. 由于O ...
- HTTPS为什么更安全,先看这些 , 网络加密 , 加密解密
投递人 itwriter 发布于 2017-02-27 21:35 评论(10) 有1957人阅读 原文链接 [收藏] « » HTTPS 是建立在密码学基础之上的一种安全通信协议,严格来说是基于 H ...
- knockout 多值绑定
knockout 这种东西现在已经很流行了,相信很多人对它的使用都已经很熟悉了,最近项目开发中发现knockout 绑定用的有些不怎么充分,发现整个page的code 有点累赘. 1.在绑定click ...
- mysql启动报错cannot allocate memory for the buffer pool处理
今天启动mysql服务器时失败了.去/var/log/mysql/查看error.log,报错信息如下: 160123 22:29:26 InnoDB: Initializing buffer poo ...
- 根据ip地址获取用户所在地
java代码: package com.henu.controller; import java.io.BufferedReader; import java.io.IOException; impo ...
- python3 特殊字符处理 \x06\x05\x07
最近在处理Excel文件中,报错:openpyxl.utils.exceptions.IllegalCharacterError, 原因是某字段出现特殊字符 \x05,\x06,\x07如下图: 在E ...