编写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");
  }
}
相关文章
|
4月前
|
XML 数据采集 API
用Lxml高效解析XML格式数据:以天气API为例
免费Python教程:实战解析中国天气网XML数据,详解Lxml库高效解析技巧、XPath用法、流式处理大文件及IP封禁应对策略,助你构建稳定数据采集系统。
282 0
|
JavaScript 前端开发 开发者
判断哪些数据的变化需要触发虚拟 DOM 的更新
判断哪些数据的变化需要触发虚拟 DOM 的更新,需要依据框架的响应式原理、组件的状态管理以及各种用户交互和异步操作等多方面因素。开发者需要深入理解所使用框架的工作机制,合理地组织和管理数据,以确保虚拟 DOM 的更新是高效且必要的。
268 58
|
XML Java 数据格式
使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式
本文介绍了在使用Spring框架时,如何通过创建`applicationContext.xml`配置文件来管理对象。首先,在resources目录下新建XML配置文件,并通过IDEA自动生成部分配置。为完善配置,特别是添加AOP支持,可以通过IDEA的Live Templates功能自定义XML模板。具体步骤包括:连续按两次Shift搜索Live Templates,配置模板内容,输入特定前缀(如spring)并按Tab键即可快速生成完整的Spring配置文件。这样可以大大提高开发效率,减少重复工作。
使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式
|
分布式计算 资源调度 Hadoop
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
396 4
|
XML JavaScript Java
java与XML文件的读写
java与XML文件的读写
178 3
|
XML JSON 前端开发
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
2884 0
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)
|
JavaScript
HTML DOM 节点树
HTML DOM 节点是指在 HTML 文档对象模型中,文档中的所有内容都被视为节点。整个文档是一个文档节点,每个 HTML 元素是元素节点,元素内的文本是文本节点,属性是属性节点,注释是注释节点。DOM 将文档表示为节点树,节点之间有父子和同胞关系。
|
JavaScript
HTML DOM 节点
HTML DOM(文档对象模型)将HTML文档视为节点树,其中每个部分都是节点:文档本身是文档节点,HTML元素是元素节点,元素内的文本是文本节点,属性是属性节点,注释是注释节点。节点间存在父子及同胞关系,形成层次结构。