编写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 ...
随机推荐
- android 跳到应用市场给软件评分
1 String packetName = this.getPackageName(); 2 Uri uri = Uri.parse("market://details?id=" ...
- Linux基础命令---apachectl
apachectl apachectl指令是apache http服务器的前端控制程序,可以协助控制apache服务的守护进程httpd. 此命令的适用范围:RedHat.RHEL.Ubuntu.Ce ...
- Linux:ps -ef命令
ps命令将某个进程显示出来 grep命令是查找 中间的|是管道命令 是指ps命令与grep同时执行 PS是LINUX下最常用的也是非常强大的进程查看命令 检查java 进程是否存在:ps -ef |g ...
- JAVA平台AOP技术研究
3.1 Java平台AOP技术概览 3.1.1 AOP技术在Java平台中的应用 AOP在实验室应用和商业应用上,Java平台始终走在前面.从最初也是目前最成熟的AOP工具--AspectJ,到目前已 ...
- 【编程思想】【设计模式】【行为模式Behavioral】备忘录模式Memento
Python版 https://github.com/faif/python-patterns/blob/master/behavioral/memento.py #!/usr/bin/env pyt ...
- 【Linux】【Services】【SaaS】Docker+kubernetes(11. 构建复杂的高可用网络)
1. 简介 flannel在实战阶段貌似不能胜任在灾难恢复时候异地的网络,打算用openvswith试试
- 三维引擎导入obj模型不可见总结
最近有客户试用我们的三维平台,在导入模型的时候,会出现模型全黑和不可见的情况.上一篇文章说了全黑的情况.此文说下不可见的情况. 经过测试,发现可能有如下两种情况. 导入的模型不在镜头视野内 导入的模型 ...
- Mysql资料 数据类型
目录 一.类型 整型 浮点型 定点数 字符串 二进制数据 时间日期类型 二.长度和范围 三.使用建议 原则 存储引擎 text和blob 浮点数和定点数 四.属性 一.类型 整型 取值范围如果加了un ...
- Axios的正确食用方法
这里分享出我个人封装的一个axios,我会尽量每行注释,希望对大家有所帮助. 1. 安装 全局执行代码 npm install axios; 2. 编写全局axios文件(附件里有代码) 在src目录 ...
- LuoguP7257 [COCI2009-2010#3] FILIP 题解
Content 有两个十进制三位数 \(a,b\),请输出这两个数翻转之后的较大数. 数据范围:\(100\leqslant a,b\leqslant 999\),\(a,b\) 中不包含 \(0\) ...