编写Java程序,使用 dom4j 创建一个 XML 文档,文档名为“city.xml”。注意该文档的格式和数据

简介: 编写Java程序,使用 dom4j 创建一个 XML 文档,文档名为“city.xml”。注意该文档的格式和数据

需求说明:


使用 dom4j 创建一个 XML 文档,文档名为“city.xml”。该文档的格式和数据如图所示


image.png

实现思路:


创建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");
  }
}
相关文章
|
7月前
|
XML 数据采集 API
用Lxml高效解析XML格式数据:以天气API为例
免费Python教程:实战解析中国天气网XML数据,详解Lxml库高效解析技巧、XPath用法、流式处理大文件及IP封禁应对策略,助你构建稳定数据采集系统。
379 0
|
7月前
|
安全 Java
Java异常处理:程序世界的“交通规则
Java异常处理:程序世界的“交通规则
382 98
|
8月前
|
存储 Java 编译器
对比Java学习Go——程序结构与变量
本节对比了Java与Go语言的基础结构,包括“Hello, World!”程序、代码组织方式、入口函数定义、基本数据类型及变量声明方式。Java强调严格的面向对象结构,所有代码需置于类中,入口方法需严格符合`public static void main(String[] args)`格式;而Go语言结构更简洁,使用包和函数组织代码,入口函数为`func main()`。两种语言在变量声明、常量定义、类型系统等方面也存在显著差异,体现了各自的设计哲学。
289 0
|
9月前
|
人工智能 监控 安全
智慧工地解决方案,java智慧工地程序代码
智慧工地系统融合物联网、AI、大数据等技术,实现对施工现场“人、机、料、法、环”的全面智能监控与管理,提升安全、效率与决策水平。
254 2
|
7月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
347 1
|
7月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
342 2
|
8月前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
Java 数据库 Spring
328 0
|
8月前
|
算法 Java
Java多线程编程:实现线程间数据共享机制
以上就是Java中几种主要处理多线程序列化资源以及协调各自独立运行但需相互配合以完成任务threads 的技术手段与策略。正确应用上述技术将大大增强你程序稳定性与效率同时也降低bug出现率因此深刻理解每项技术背后理论至关重要.
506 16