编写Java程序,使用 dom4j 创建一个 XML 文档,文档名为“city.xml”。注意该文档的格式和数据
查看本章节
查看作业目录
需求说明:
使用 dom4j 创建一个 XML 文档,文档名为“city.xml”。该文档的格式和数据如图所示

实现思路:
- 创建Java项目,添加dom4j对应jar包,创建CreateCityXML类
- 调用DocumentHelper的createDocument方法创建根节点,调用addAttribute方法设置name属性,并且设置为根节点
- 调用DocumentHelper的createDocument方法创建子节点,调用对应父节点Element对象的add方法添加子节点(注意父子关系结构顺序)
- 如果需要属性则调用Element对象的addAttribute设置,如果需要内容则调用setText方法设置内容
- 最后使用OutputFormat.createPrettyPrint()创建格式化保存对象,对Xml文档的保存工作
- 创建main方法调用创建方法及保存方法进行测试
实现代码:
import java.io.FileWriter;
import java.io.IOException;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class CreateCityXML {
private Document document;
private Element rootElement;
// 该方法用于创建根节点
public void createRootElement() {
// 创建XML文件的文档对象
document = DocumentHelper.createDocument();
// 创建根节点
rootElement = DocumentHelper.createElement("country");
// 为根节点添加属性name
rootElement.addAttribute("name", "中国");
// 将rootElement设为根节点
document.setRootElement(rootElement);
}
// 该方法用于创建子节点
public void createChildElement() {
// 创建湖北省子节点
Element hubeiElement = DocumentHelper.createElement("province");
// 为湖北省节点添加属性
hubeiElement.addAttribute("name", "湖北");
// 创建武汉市节点
Element wuhanElement = DocumentHelper.createElement("city");
// 为武汉市节点设置文本内容
wuhanElement.setText("武汉");
// 创建十堰市节点
Element shiyanElement = DocumentHelper.createElement("city");
// 为十堰市节点设置文本内容
shiyanElement.setText("十堰");
// 将武汉市节点和十堰市节点添加到湖北省节点内
hubeiElement.add(wuhanElement);
hubeiElement.add(shiyanElement);
// 添加湖北省子节点到根节点中
rootElement.add(hubeiElement);
// 创建浙江省子节点
Element zhejiangElement = DocumentHelper.createElement("province");
// 为浙江省节点添加属性
zhejiangElement.addAttribute("name", "浙江");
// 创建杭州市节点
Element hangzhouElement = DocumentHelper.createElement("city");
// 为杭州市节点设置文本内容
hangzhouElement.setText("杭州");
// 创建宁波市节点
Element ningboElement = DocumentHelper.createElement("city");
// 为宁波市节点设置文本内容
ningboElement.setText("宁波");
// 将杭州市节点和宁波市节点添加到湖北省节点内
zhejiangElement.add(hangzhouElement);
zhejiangElement.add(ningboElement);
// 添加浙江省子节点到根节点中
rootElement.add(zhejiangElement);
}
// 将数据写入XML文档
public void createXML(String path) {
// 创建OutputFormat对象,用于格式化输出
OutputFormat format = OutputFormat.createPrettyPrint();
// 设置文档的编码
format.setEncoding("UTF-8");
try {
// 创建XMLWriter对象,用于输出XML文档
XMLWriter writer = new XMLWriter(new FileWriter(path), format);
// 将Document文档输入到city.xml文件中
writer.write(document);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
CreateCityXML createCityXML = new CreateCityXML();
// 创建文档和根节点
createCityXML.createRootElement();
// 创建子节点
createCityXML.createChildElement();
// 生成XML文件
createCityXML.createXML("H:/city.xml");
}
}
编写Java程序,使用 dom4j 创建一个 XML 文档,文档名为“city.xml”。注意该文档的格式和数据的更多相关文章
- 编写Java程序,随机给定一个数字猜大小
返回本章节 返回作业目录 需求说明: 由系统随机生成一个1~100之间的整数. 通过控制台一直输入一个整数,比较该数与系统随机生成的那个数,如果大就输出"猜大了.",继续输入:如果 ...
- 35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n); (2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方 法时,要求计算1到n的和; (3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口 方法时,要求计算n的阶乘(n
35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n): (2)编写一个类:ClassA来实现接口InterfaceA,实现in ...
- 在存放源程序的文件夹中建立一个子文件夹 myPackage。例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage)。在 myPackage 包中创建一个YMD类,该类具有计算今年的年份、可以输出一个带有年月日的字符串的功能。设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名、年龄、出生日期。程序使用YM
题目补充: 在存放源程序的文件夹中建立一个子文件夹 myPackage.例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage).在 m ...
- Java初学者作业——编写Java程序,输入一个数字,实现该数字阶乘的计算。
返回本章节 返回作业目录 需求说明: 编写Java程序,输入一个数字,实现该数字阶乘的计算.一个数字的阶乘是所有小于及等于该数的正整数的积,自然数n的阶乘写作n! .例如,5的阶乘等于1*2*3*4* ...
- Java初学者作业——编写Java程序,在控制台中输入一个数字,要求定义方法实现找出能够整除该数字的所有数字。
返回本章节 返回作业目录 需求说明: 编写Java程序,在控制台中输入一个数字,要求定义方法实现找出能够整除该数字的所有数字. 实现思路: 定义方法findNums(),用于实现查找所有能够整除指定数 ...
- Java初学者作业——编写Java程序,输入一个学生的5门课程的成绩,求其平均分。
返回本章节 返回作业目录 需求说明: 编写Java程序,输入一个学生的5门课程的成绩,求其平均分.计算平均成绩,需要将每一门课程的成绩逐步累加到总成绩中,使用 for 循环实现,然后求出平均分. 实现 ...
- 编写Java程序,用户在网上购买商品(good),当用户买了一本书(book)、一顶帽子(hat)或者买了一双鞋子(shoe),卖家就会通过物流将商品邮寄给用户,使用简单工厂模式模拟这一过程。
查看本章节 查看作业目录 需求说明: 编写Java程序,用户在网上购买商品(good),当用户买了一本书(book).一顶帽子(hat)或者买了一双鞋子(shoe),卖家就会通过物流将商品邮寄给用户, ...
- 初学编写JAVA程序
一.编写JAVA程序 编写JAVA程序,输出一行文本信息:“Hello world”,选择编辑器eclipse,打开之后编写程序 public class Hello{ public static v ...
- 在C#/.NET应用程序开发中创建一个基于Topshelf的应用程序守护进程(服务)
本文首发于:码友网--一个专注.NET/.NET Core开发的编程爱好者社区. 文章目录 C#/.NET基于Topshelf创建Windows服务的系列文章目录: C#/.NET基于Topshelf ...
随机推荐
- 2019广东工业大学新生杯决赛 I-迷途的怪物
题目:I-I-迷途的怪物_2019年广东工业大学腾讯杯新生程序设计竞赛(同步赛) (nowcoder.com) 将(p-1)^n 按照多项式定理拆开,会发现只有一项没有p,其余项都有p,可直接约掉. ...
- Android EditText软键盘显示隐藏以及“监听”
一.写此文章的起因 本人在做类似于微信.易信等这样的聊天软件时,遇到了一个问题.聊天界面最下面一般类似于如图1这样(这里只是显示了最下面部分,可以参考微信等),有输入文字的EditText和表情按钮等 ...
- ehcache详解
Ehcache是现在最流行的纯Java开 源缓存框架,配置简单.结构清晰.功能强大,最初知道它,是从Hibernate的缓存开始的.网上中文的EhCache材料以简单介绍和配置方法居多, 如果你有这方 ...
- 转Android Canvas和Paint基本使用
Android Canvas和Paint基本使用 这篇文章主要介绍下画笔Paint和画布Canvas的基本使用 1.Paint 创建对象Paint mPaint = new Paint(); 常 ...
- Oracle中IS TABLE OF的使用
IS TABLE OF :指定是一个集合的表的数组类型,简单的来说就是一个可以存储一列多行的数据类型. INDEX BY BINARY_INTEGER:指索引组织类型 BULK COLLECT :指是 ...
- oracle(数据文件)
--创建数据文件 create tablespace--创建表空间同时创建数据文件 create temporary tablespace --创建临时表空间的同时创建临时数据文件 alter tab ...
- 银行业评分卡制作——IV、WOE
参考链接:https://blog.csdn.net/kevin7658/article/details/50780391 1.IV的用途 IV的全称是Information Value,中文意思是信 ...
- java中关于string类和常量池的一点猜想
public class StringTest { /** * @param args */ public static void main(String[] args) { test1 ...
- numpy基础教程--二维数组的转置
使用numpy库可以快速将一个二维数组进行转置,方法有三种 1.使用numpy包里面的transpose()可以快速将一个二维数组转置 2.使用.T属性快速转置 3.使用swapaxes(1, 0)方 ...
- Tableau如何绘制双柱折线组合图
一.数据准备如下所示 二.将日期拖拽至列,销售额拖拽至行,结果如下所示 三.右键日期排序-选择手动排序 四.将指标拖拽至标记卡上 五.创建计算字段增长率 SUM(IF YEAR(日期)=2017 th ...