编写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");
  }
}
相关文章
|
14天前
|
JavaScript 前端开发 开发者
判断哪些数据的变化需要触发虚拟 DOM 的更新
判断哪些数据的变化需要触发虚拟 DOM 的更新,需要依据框架的响应式原理、组件的状态管理以及各种用户交互和异步操作等多方面因素。开发者需要深入理解所使用框架的工作机制,合理地组织和管理数据,以确保虚拟 DOM 的更新是高效且必要的。
21 2
|
22天前
|
Java API Apache
Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
【10月更文挑战第29天】Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
91 5
|
3月前
|
XML 数据采集 存储
使用Java和XPath在XML文档中精准定位数据
在数据驱动的时代,从复杂结构中精确提取信息至关重要。XML被广泛用于数据存储与传输,而XPath则能高效地在这些文档中导航和提取数据。本文深入探讨如何使用Java和XPath精准定位XML文档中的数据,并通过小红书的实际案例进行分析。首先介绍了XML及其挑战,接着阐述了XPath的优势。然后,提出从大型XML文档中自动提取特定产品信息的需求,并通过代理IP技术、设置Cookie和User-Agent以及多线程技术来解决实际网络环境下的数据抓取问题。最后,提供了一个Java示例代码,演示如何集成这些技术以高效地从XML源中抓取数据。
142 7
使用Java和XPath在XML文档中精准定位数据
|
30天前
|
XML 编解码 JavaScript
DOM(文档对象模型)和 BOM(浏览器对象模型)
【10月更文挑战第19天】在前端开发中,理解 DOM(文档对象模型)和 BOM(浏览器对象模型)是至关重要的。它们是 Web 开发的基础,为我们提供了与网页文档和浏览器进行交互的能力。
|
1月前
|
Java Linux
java读取linux服务器下某文档的内容
java读取linux服务器下某文档的内容
38 3
java读取linux服务器下某文档的内容
|
3月前
|
Java API 数据中心
百炼平台Java 集成API上传文档到数据中心并添加索引
本文主要演示阿里云百炼产品,如何通过API实现数据中心文档的上传和索引的添加。
101 3
|
2月前
|
Java Apache Maven
Java中使用poi+poi-tl实现根据模板导出word文档
这个过程不仅简化了文档生成的工作,而且保证了生成文档的一致性与准确性,特别适合于那些需要生成大量文档的自动化场景。通过以上步骤,Java开发人员可以实现高效、可靠的Word文档导出功能。
1399 0
|
1月前
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
60 1
|
3月前
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
16天前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
72 8