Java使用DOM4j实现读写XML文件的属性和元素

 更新时间:2018年12月17日 08:34:12   作者:程沐喆  
这篇文章主要为大家详细介绍了Java使用DOM4j实现读写XML文件的属性和元素,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

DOM4可以读取和添加XML文件的属性或者元素

读取属性:

public static void ReadAttributes() throws DocumentException {
  File file = new File("D:\\cmz\\java\\XMLTest\\Customertest.xml");
  SAXReader reader = new SAXReader();
  Document doc = reader.read(file);
  Element root = doc.getRootElement();
  try {

   for (Iterator iterator = root.elementIterator(); iterator.hasNext();) {
    Element element = (Element) iterator.next();
    String CustomerID = element.attributeValue("CustomerID");
    System.out.println("CustomerID = " + CustomerID);
    String CompanyName = element.attributeValue("CompanyName");
    System.out.println("CompanyName = " + CompanyName);
    System.out.println("ContactName = "
      + element.attributeValue("ContactName"));
    System.out.println("ContactTitle = "
      + element.attributeValue("ContactTitle"));
    System.out.println("Address = "
      + element.attributeValue("Address"));
    System.out.println("City = " + element.attributeValue("Cit阿y"));
    System.out.println("PostalCode = "
      + element.attributeValue("PostalCode"));
    System.out.println("Country = "
      + element.attributeValue("Country"));
    System.out
      .println("Phone = " + element.attributeValue("Phone"));
    System.out.println("Fax = " + element.attributeValue("Fax"));
    System.out
      .println("--------------------------------------------------------\t");

   }
  } catch (Exception e) {
   // TODO: handle exception
  }

 }

读取元素:

public static void ReadInnerTest() throws DocumentException {
  File file = new File("D:\\cmz\\java\\XMLTest\\Customer1.xml");
  SAXReader reader = new SAXReader();
  Document doc = reader.read(file);
  Element root = doc.getRootElement();

  try {
   for (Iterator iterator = root.elementIterator(); iterator.hasNext();) {
    Element type = (Element) iterator.next();
    
    System.out.println(type.elementText("CustomerID"));
    System.out.println(type.elementText("CompanyName"));
    System.out.println(type.elementText("ContactName"));
    System.out.println(type.elementText("ContactTitle"));
    System.out.println(type.elementText("Address"));
    System.out.println(type.elementText("City"));
    System.out.println(type.elementText("PostalCode"));
    System.out.println(type.elementText("Country"));
    System.out.println(type.elementText("Phone"));
    System.out.println(type.elementText("Fax"));
    System.out.println("---------------------------------\t");
   }

  } catch (Exception e) {
   // TODO: handle exception
  }
 }

写入属性:

public static void WriteAttributes() {
  Document doc = DocumentHelper.createDocument();
  Element ele = doc.addElement("table");
  for (int i = 1; i < 5; i++) {
   Element Customers = ele.addElement("Customers");
   
   Customers.addAttribute("CustomerID", "ALFKI" + i);
   Customers.addAttribute("CompanyName", "Alfreds Futterkiste" + i);
   Customers.addAttribute("ContactName", "Maria Anders" + i);
   Customers.addAttribute("ContactTitle", "Sales Representative" + i);
   Customers.addAttribute("Address", "Obere Str. 57");
   Customers.addAttribute("City", "beijin");
   Customers.addAttribute("PostalCode", "12209");
   Customers.addAttribute("Country", "Germany");
   Customers.addAttribute("Phone", "030-0074321");
   Customers.addAttribute("Fax", "030-0076545");
   try {
    XMLWriter writer = new XMLWriter(new FileWriter(new File(
      "Customertest.xml")));
    writer.write(doc);
    writer.close();
   } catch (Exception e) {
    // TODO: handle exception
   }
  }

 }

写出元素:

public static void writeInnerTest(){
  Document doc = DocumentHelper.createDocument();
  Element ele = doc.addElement("table");
  
  for (int i = 1; i < 5; i++) {
   Element Customers = ele.addElement("row");
   Element CustomerID = ele.addElement("CustomerID");
   CustomerID.setText("ALFKI" + i);
   Element CompanyName = ele.addElement("CompanyName");
   CompanyName.setText("Alfreds Futterkiste" + i);
   Element ContactName = ele.addElement("ContactName");
   ContactName.setText("Maria Anders" + i);
   Element ContactTitle = ele.addElement("ContactTitle");
   ContactTitle.setText("Sales Representative" + i);
   Element Address = ele.addElement("Address");
   Address.setText("Obere Str. 57");
   Element City = ele.addElement("City");
   City.setText("beijin");
   Element PostalCode = ele.addElement("PostalCode");
   PostalCode.setText("12209");
   Element Country = ele.addElement("Country");
   Country.setText("Germany");
   Element Phone = ele.addElement("Phone");
   Phone.setText("030-0074321");
   Element Fax = ele.addElement("Fax");
   Fax.setText("030-0076545");
  }
  try {
   XMLWriter writer = new XMLWriter(new FileWriter(new File(
     "Customertest2.xml")));
   writer.write(doc);
   writer.close();
  } catch (Exception e) {
   // TODO: handle exception
  }
  
  
 }

可以修改属性的文本内容:

public static void ReadUpdateattribute() throws DocumentException{
  File file = new File("D:\\cmz\\java\\XMLTest\\Customertest.xml");
  SAXReader reader = new SAXReader();
  Document doc = reader.read(file);
  Element root = doc.getRootElement();
  
  try {

   for (Iterator iterator = root.elementIterator("Customers"); iterator.hasNext();) {
    Element element = (Element) iterator.next();
    String name = "ALFKI1";
    if (name.equals(element.attributeValue("CustomerID")) ) {
     Attribute attr = element.attribute("CustomerID");
     attr.setValue("234");
     Element ContactName = element.addElement("23424");
     ContactName.setText("676767" );
    }
        

   }
   XMLWriter writer = new XMLWriter(new FileOutputStream(file));
   writer.write(doc);
   ReadAttributes();
  } catch (Exception e) {
   // TODO: handle exception
  }
  
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

相关文章

  • Spring Boot项目集成Knife4j接口文档的实例代码

    Spring Boot项目集成Knife4j接口文档的实例代码

    Knife4j就相当于是swagger的升级版,对于我来说,它比swagger要好用得多<BR>,这篇文章主要介绍了Spring Boot项目集成Knife4j接口文档的示例代码,需要的朋友可以参考下
    2021-12-12
  • Java容器ArrayList知识点总结

    Java容器ArrayList知识点总结

    本篇文章给大家分享了Java容器ArrayList的相关知识点,对此有需要的朋友可以跟着学习参考下。
    2018-05-05
  • SpringCloud轮询拉取注册表与服务发现流程详解

    SpringCloud轮询拉取注册表与服务发现流程详解

    这篇文章主要介绍了SpringCloud轮询拉取注册表与服务发现,现在很多创业公司都开始往springcloud靠了,可能是由于文档和组件比较丰富的原因吧,毕竟是一款目前来说比较完善的微服务架构
    2022-11-11
  • Spring boot启动原理及相关组件整理

    Spring boot启动原理及相关组件整理

    这篇文章主要介绍了Spring boot启动原理及相关组件整理,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2024-12-12
  • Java 基础全面讲解StringBuffer类的使用

    Java 基础全面讲解StringBuffer类的使用

    当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder类,和String类不同的是,StringBuffer和 StringBuilder类的对象能够被多次的修改,并且不产生新的未使用对象
    2022-01-01
  • SpringBoot整合RocketMQ实现消息发送和接收的详细步骤

    SpringBoot整合RocketMQ实现消息发送和接收的详细步骤

    这篇文章主要介绍了SpringBoot整合RocketMQ实现消息发送和接收功能,我们使用主流的SpringBoot框架整合RocketMQ来讲解,使用方便快捷,本文分步骤给大家介绍的非常详细,需要的朋友可以参考下
    2021-08-08
  • Spring Boot Security 结合 JWT 实现无状态的分布式API接口

    Spring Boot Security 结合 JWT 实现无状态的分布式API接口

    JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案。这篇文章主要介绍了Spring Boot Security 结合 JWT 实现无状态的分布式API接口 ,需要的朋友可以参考下
    2019-04-04
  • Java实现单链表的操作

    Java实现单链表的操作

    这篇文章主要为大家详细介绍了Java实现单链表的操作,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • SpringCloud Netflix Ribbon源码解析(推荐)

    SpringCloud Netflix Ribbon源码解析(推荐)

    这篇文章主要介绍了SpringCloud Netflix Ribbon源码解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • jvm添加自定义dns实现过程示例

    jvm添加自定义dns实现过程示例

    这篇文章主要为大家介绍了jvm添加自定义dns实现过程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08

最新评论