服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Java中使用DOM4J生成xml文件并解析xml文件的操作

Java中使用DOM4J生成xml文件并解析xml文件的操作

2021-12-25 17:12小王写博客 Java教程

这篇文章主要介绍了Java中使用DOM4J来生成xml文件和解析xml文件的操作,今天通过代码给大家展示了解析xml文件和生成xml文件的方法,需要的朋友可以参考下

一、前言

现在有不少需求,是需要我们解析xml文件中的数据,然后导入到数据库中,当然解析xml文件也有好多种方法,小编觉得还是DOM4J用的最多最广泛也最好理解的吧.小编也是最近需求里遇到了,就来整理一下自己的理解,只适合刚刚学习的,一起理解!今天我们把解析xml文件和生成xml文件在一起来展示.

 

二、准备依赖

<dependency>
	 <groupId>dom4j</groupId>
	 <artifactId>dom4j</artifactId>
	 <version>1.6.1</version>
    </dependency>

 

三、生成xml文件生成标准展示

Java中使用DOM4J生成xml文件并解析xml文件的操作

生成xml代码

/**
   * 使用DOM4J生成xml方法
   */
  public static void createXml(){
      try {
          // 创建document对象
          Document document = DocumentHelper.createDocument();
          // 创建根节点bookRoot
          Element StudentRoot = document.addElement("StudentRoot");
          // 向根节点中添加第一个节点
          Element book1 = StudentRoot.addElement("student");
          // 向子节点中添加属性
          book1.addAttribute("id","1");
          // 向节点中添加子节点
          Element name = book1.addElement("name");
          // 向子节点赋值
          name.setText("小乔");
          Element price = book1.addElement("age");
          price.setText("18");
          // 向根节点中添加第二个节点
          Element book2 = StudentRoot.addElement("student");
          book2.addAttribute("id","2").addElement("name").setText("大桥");
          book2.addElement("age").setText("20");

          // 向根节点中添加第三个节点
          Element book3 = StudentRoot.addElement("student");
          book3.addAttribute("id","3").addElement("name").setText("孙策");
          book3.addElement("age").setText("21");

          // 设置生成xml的格式
          OutputFormat of = OutputFormat.createPrettyPrint();
          // 设置编码格式
          of.setEncoding("UTF-8");

          // 生成xml文件
          File file = new File("E:\\student.xml");
          if (file.exists()){
              file.delete();
          }
          //创建一个xml文档编辑器
          XMLWriter writer = new XMLWriter(new FileOutputStream(file), of);
			//把刚刚创建的document放到文档编辑器中
          writer.write(document);
          writer.close();
      } catch (Exception e) {
          e.printStackTrace();
      }
  }

 

四、解析xml文件

解析xml的文件就是刚刚导出的那个样子,我们展示两种情况,一个是知道属性名字和子元素名字的我们把解析的xml文件数据放到实体类中.不知道的就直接打印到控制台.

实体类展示

import lombok.Data;

@Data
public class Student {

  private int id;

  private String name;

  private int age;
}

解析xml文件方法

public static void analysis(){
      // 把要解析的xml变成file文件
      File file = new File("E:\\student.xml");

      // 获取解析器对象
      SAXReader reader = new SAXReader();
      // 把文件解析成document树
      Document document = null;
      try {
          document = reader.read(file);
      } catch (DocumentException e) {
          e.printStackTrace();
      }
      // 获取根节点
      Element studentRoot = document.getRootElement();
      // 获取根节点中所有节点
      List<Element> elements = studentRoot.elements();

      // 存放xml中节点的数据集合
      List<Student> list = new ArrayList<>();

      // 便利所有节点
      for (Element child : elements) {

          Student student = new Student();

          //已知属性名情况下
          student.setId(Integer.parseInt(child.attributeValue("id")));//获取属性的数据
          //已知子元素名的情况下
          student.setName(child.elementText("name"));//获取元素中值
          student.setAge(Integer.parseInt(child.elementText("age")));//获取元素中值

          list.add(student);

          //未知属性名情况下
          List<Attribute> attributes = child.attributes();
          for (Attribute attribute : attributes) {
              System.out.println(attribute.getName() + "---> " + attribute.getValue());
          }

          //未知子元素名情况下
          List<Element> elementList = child.elements();
          for (Element ele : elementList) {
              System.out.println(ele.getName() + "--->" + ele.getText());
          }
      }
      //把解析xml出来的数据集合打印
      list.forEach(x-> System.out.println(x));
  }

解析结果展示

Java中使用DOM4J生成xml文件并解析xml文件的操作

 

五、总结

这样我们就把DOM4J来生成xml文件和解析xml文件就都操作完成了,有什么问题留言哦!!谢谢大家

到此这篇关于Java中使用DOM4J生成xml文件并解析xml文件的的文章就介绍到这了,更多相关java dom4j 解析xml文件内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/wang1221/p/15249831.html

延伸 · 阅读

精彩推荐
  • Java教程20个非常实用的Java程序代码片段

    20个非常实用的Java程序代码片段

    这篇文章主要为大家分享了20个非常实用的Java程序片段,对java开发项目有所帮助,感兴趣的小伙伴们可以参考一下 ...

    lijiao5352020-04-06
  • Java教程升级IDEA后Lombok不能使用的解决方法

    升级IDEA后Lombok不能使用的解决方法

    最近看到提示IDEA提示升级,寻思已经有好久没有升过级了。升级完毕重启之后,突然发现好多错误,本文就来介绍一下如何解决,感兴趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java8中Stream使用的一个注意事项

    Java8中Stream使用的一个注意事项

    最近在工作中发现了对于集合操作转换的神器,java8新特性 stream,但在使用中遇到了一个非常重要的注意点,所以这篇文章主要给大家介绍了关于Java8中S...

    阿杜7482021-02-04
  • Java教程Java实现抢红包功能

    Java实现抢红包功能

    这篇文章主要为大家详细介绍了Java实现抢红包功能,采用多线程模拟多人同时抢红包,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙...

    littleschemer13532021-05-16
  • Java教程Java BufferWriter写文件写不进去或缺失数据的解决

    Java BufferWriter写文件写不进去或缺失数据的解决

    这篇文章主要介绍了Java BufferWriter写文件写不进去或缺失数据的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望...

    spcoder14552021-10-18
  • Java教程xml与Java对象的转换详解

    xml与Java对象的转换详解

    这篇文章主要介绍了xml与Java对象的转换详解的相关资料,需要的朋友可以参考下...

    Java教程网2942020-09-17
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    这篇文章主要介绍了Java使用SAX解析xml的示例,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程小米推送Java代码

    小米推送Java代码

    今天小编就为大家分享一篇关于小米推送Java代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...

    富贵稳中求8032021-07-12