编写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 ...
随机推荐
- spring注解-扩展原理
AnnotationConfigApplicationContext(IOC容器)的有参构造方法中,在refresh()里对这些组件进行初始化 BeanPostProcessor bean后置处理器, ...
- CentOS 初体验三: Yum 安装、卸载软件
一:Yum 简介 Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指 ...
- KVM配置
安装依赖包(因最小化安装) [root@slave-master ~]# yum install -y vim wget tree lrzsz gcc gcc-c++ automake pcre pc ...
- 【Linux】【Services】【SaaS】Docker+kubernetes(3. 用ansible管理机器和软件)
1. 简介 1.1. 公司环境使用的puppet,但是我更喜欢ansible,原因有二,第一,我是红帽的忠粉:),第二,我对python比较熟悉 1.2. ansible官方网站:https://ww ...
- sqlserver 删除表分区
我们都知道,SQL server2008R2企业版以及一些其它的版本支持分区函数,当你在这些数据库备份后想在一些不支持分区函数的数据库做还原时,就会失败. 下面我们来解决这个问题. 1.备份数据库!备 ...
- 【Java 8】Stream.distinct() 列表去重示例
在这篇文章里,我们将提供Java8 Stream distinct()示例. distinct()返回由该流的不同元素组成的流.distinct()是Stream接口的方法. distinct()使用 ...
- Redis缓存穿透、缓存击穿以及缓存雪崩
作为一个内存数据库,redis也总是免不了有各种各样的问题,这篇文章主要是针对其中三个问题进行讲解:缓存穿透.缓存击穿和缓存雪崩.并给出一些解决方案.这三个问题是基本问题也是面试常问问题. 这篇文章我 ...
- 剖析虚幻渲染体系(13)- RHI补充篇:现代图形API之奥义与指南
目录 13.1 本篇概述 13.1.1 本篇内容 13.1.2 概念总览 13.1.3 现代图形API特点 13.2 设备上下文 13.2.1 启动流程 13.2.2 Device 13.2.3 Sw ...
- SQLserver 2014自定义备份数据库
一.管理-维护计划-维护计划向导-下一步 二.点击更改设置任务执行时间-确定-下一步 三.选择备份数据库完整-下一步 四.选择需要备份的数据库-然后确定 五.点目标自定义备份文件存储目录-下一步 六. ...
- OpenGL ES2 缩放移动
OpenGL ES Transformations with Gestures Ricardo Rendon Cepeda on December 10, 2013 Tweet Gestures: I ...