一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

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
主站蜘蛛池模板: 日产乱码2021永久手机版 | 黑帮大佬与我的365天2标清中文 | 91狠狠| 啪啪大幂幂被c | 日本一道本视频 | 九九热这里只有精品视频免费 | 四虎院影永久在线观看 | 99热免费在线观看 | 亚洲精品综合 | 闺蜜的样子小说安沁在线阅读 | 久久亚洲精品AV无码四区 | 日本免费高清在线 | 热99re久久精品国产 | 亚洲不卡高清免v无码屋 | 男人狂躁女人下面狂叫图片 | 亚洲国产午夜看片 | 亚洲欧美国产另类 | 无套大战白嫩乌克兰美女 | 国产欧美日韩图片一区二区 | 大桥未久一区二区 | 国产一级真人毛爱做毛片 | 亚洲第一二三四区 | 日本福利视频网站 | 精品国产午夜久久久久九九 | 91香蕉在线 | 四虎影视4hutv最新地址在线 | 成年男女免费大片在线观看 | 免费理伦片在线观看全网站 | 好大好硬视频 | 久久精品国产在热亚洲完整版 | 国产做a爰片久久毛片 | 18美女光胸光屁屁洗澡 | 2012手机在线中文字幕 | 免费岛国 | 色操网| 草莓香蕉绿巨人丝瓜榴莲18 | 99久久中文字幕伊人 | 夫妻性生活在线 | 视频一本大道香蕉久在线播放 | 成人亚洲欧美综合 | 四虎在线精品免费高清在线 |