首頁 後端開發 XML/RSS教程 四種使用dom4j讀取xml檔的方式

四種使用dom4j讀取xml檔的方式

Mar 21, 2020 pm 05:26 PM
xml

四種使用dom4j讀取xml檔的方式

以下是四種讀取xml檔案的方式,每種都有自己的用處。這是我在寫日誌管理員的時候查找到的。希望能給大家幫忙。

首先我們先給一個簡單的xml檔

<?xml version="1.0" ?>
<ROWDATA>

<ROW>
  <C0>1</C0>
  <EMPNO>7891</EMPNO>
  <ENAME>sdffff</ENAME>
  <JOB>job</JOB>
  <MGR></MGR>
  <HIREDATE>2010-1-1</HIREDATE>
  <SAL>5000.00</SAL>
  <COMM>1000.00</COMM>
  <DEPTNO></DEPTNO>
</ROW>

<ROW>
  <C0>2</C0>
  <EMPNO>7369</EMPNO>
  <ENAME>SMITH</ENAME>
  <JOB>CLERK</JOB>
  <MGR>7902</MGR>
  <HIREDATE>1980-12-17</HIREDATE>
  <SAL>800.00</SAL>
  <COMM></COMM>
  <DEPTNO>20</DEPTNO>
</ROW>

</ROWDATA>

第一種:

/**
  * 使用dom4j 中saxreader 获取Document容器,利用此容器的elementIterator读取xml文件
  */
 public static void readXML() throws DocumentException{
  
  SAXReader sr = new SAXReader();//获取读取xml的对象。
  Document doc = sr.read("src/com/sinojava/EMP.xml");//得到xml所在位置。然后开始读取。并将数据放入doc中
  Element el_root = doc.getRootElement();//向外取数据,获取xml的根节点。
  Iterator it = el_root.elementIterator();//从根节点下依次遍历,获取根节点下所有子节点
  
  while(it.hasNext()){//遍历该子节点
   
   Object o = it.next();//再获取该子节点下的子节点
   Element el_row = (Element)o;
   String s = el_row.getText();

   Iterator it_row = el_row.elementIterator();
   
   while(it_row.hasNext()){//遍历节点
    
    Element el_ename = (Element)it_row.next();//获取该节点下的所有数据。
    System.out.println(el_ename.getText());
   }
   //System.out.println(o);
  }
  
 }

第二種:;

/**
  * 使用elements方法进行xml的读取,相当于条件查询,可以根据不同的节点,利用for循环查询该节点下所有的数据。
  * @throws DocumentException
  */
 public static void readXML02() throws DocumentException{
  
  SAXReader sr = new SAXReader();//获取读取方式
  Document doc = sr.read("src/com/sinojava/EMP.xml");//读取xml文件,并且将数据全部存放到Document中
  Element root = doc.getRootElement();//获取根节点
  
  List list = root.elements("ROW");//根据根节点,将根节点下 row中的所有数据放到list容器中。
  for(Object obj:list){//这种遍历方式,是jdk1.5以上的版本支持的遍历方式
   Element row = (Element)obj;
   List list_row = row.elements("ENAME");//获取ENAME节点下所有的内容,存入list_row容器中
   
   for(Object objempno:list_row){
    
    Element el_empno = (Element)objempno;
    
    System.out.println(el_empno.getName()+": "+el_empno.getText());//获取节点下的数据。
    
   }
  }
 }

第三種:

/**
  * 使用适配器来完成xml的读取。
  * @param args
  * @throws DocumentException
  */
 public static void readXML04() throws DocumentException{
  
  SAXReader sr = new SAXReader();
  Document doc = sr.read("src/com/sinojava/EMP.xml");
  
  doc.accept(new VisitorSupport() {//使用观察器的子类,来完成对xml文件的读取。
   
   public void visit(Element el) {//利用观察期进行xml的读取。
    
    System.out.println(el.getName()+": "+el.getText());

   }
   
  });
 }

第四種:

/**
  * 使用selectNodes读取xml文件
  * @param args
  * @throws DocumentException
  */
 public static void readXML05(String elementpath) throws DocumentException{
  
  SAXReader sr = new SAXReader();
  Document doc = sr.read("src/com/sinojava/EMP.xml");
  
  List list = doc.selectNodes(elementpath);//使用selectNodes获取所要查询xml的节点。
  
  for(Object obj:list){//遍历节点,获取节点内数据。
   
   Element el = (Element)obj;
   System.out.println(el.getText());
  }
  
 }

更多相關問題請造訪PHP中文網:XML影片教學

以上是四種使用dom4j讀取xml檔的方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

能否用PowerPoint開啟XML文件 能否用PowerPoint開啟XML文件 Feb 19, 2024 pm 09:06 PM

XML檔可以用PPT開啟嗎? XML,即可擴展標記語言(ExtensibleMarkupLanguage),是一種廣泛應用於資料交換和資料儲存的通用標記語言。與HTML相比,XML更加靈活,能夠定義自己的標籤和資料結構,使得資料的儲存和交換更加方便和統一。而PPT,即PowerPoint,是微軟公司開發的一種用於創建簡報的軟體。它提供了圖文並茂的方

Python中的XML資料轉換為CSV格式 Python中的XML資料轉換為CSV格式 Aug 11, 2023 pm 07:41 PM

Python中的XML資料轉換為CSV格式XML(ExtensibleMarkupLanguage)是一種可擴充標記語言,常用於資料的儲存與傳輸。而CSV(CommaSeparatedValues)則是一種以逗號分隔的文字檔案格式,常用於資料的匯入和匯出。在處理資料時,有時需要將XML資料轉換為CSV格式以便於分析和處理。 Python作為一種功能強大

使用Python處理XML中的錯誤和異常 使用Python處理XML中的錯誤和異常 Aug 08, 2023 pm 12:25 PM

使用Python處理XML中的錯誤和異常XML是一種常用的資料格式,用於儲存和表示結構化的資料。當我們使用Python處理XML時,有時可能會遇到一些錯誤和異常。在本篇文章中,我將介紹如何使用Python來處理XML中的錯誤和異常,並提供一些範例程式碼供參考。使用try-except語句捕捉XML解析錯誤當我們使用Python解析XML時,有時候可能會遇到一些

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

Python解析XML中的特殊字元和轉義序列 Python解析XML中的特殊字元和轉義序列 Aug 08, 2023 pm 12:46 PM

Python解析XML中的特殊字元和轉義序列XML(eXtensibleMarkupLanguage)是一種常用的資料交換格式,用於在不同系統之間傳輸和儲存資料。在處理XML檔案時,經常會遇到包含特殊字元和轉義序列的情況,這可能會導致解析錯誤或誤解資料。因此,在使用Python解析XML檔案時,我們需要了解如何處理這些特殊字元和轉義序列。一、特殊字元和

C#開發中如何處理XML和JSON資料格式 C#開發中如何處理XML和JSON資料格式 Oct 09, 2023 pm 06:15 PM

C#開發中如何處理XML和JSON資料格式,需要具體程式碼範例在現代軟體開發中,XML和JSON是廣泛應用的兩種資料格式。 XML(可擴展標記語言)是一種用於儲存和傳輸資料的標記語言,而JSON(JavaScript物件表示)是一種輕量級的資料交換格式。在C#開發中,我們經常需要處理和操作XML和JSON數據,本文將重點放在如何使用C#處理這兩種數據格式,並附上

如何使用 PHP 函數處理 XML 資料? 如何使用 PHP 函數處理 XML 資料? May 05, 2024 am 09:15 AM

使用PHPXML函數處理XML資料:解析XML資料:simplexml_load_file()和simplexml_load_string()載入XML檔案或字串。存取XML資料:利用SimpleXML物件的屬性和方法來取得元素名稱、屬性值和子元素。修改XML資料:使用addChild()和addAttribute()方法新增元素和屬性。序列化XML資料:asXML()方法將SimpleXML物件轉換為XML字串。實戰案例:解析產品饋送XML,提取產品信息,轉換並將其儲存到資料庫中。

使用Python實現XML中的資料校驗 使用Python實現XML中的資料校驗 Aug 10, 2023 pm 01:37 PM

使用Python實現XML中的資料校驗引言:在現實生活中,我們經常會處理各種各樣的數據,其中XML(可擴展標記語言)是一種常用的數據格式。 XML具有良好的可讀性和可擴充性,廣泛應用於各種領域,如資料交換、設定檔等。在處理XML資料時,我們經常需要對資料進行校驗,以確保資料的完整性和正確性。本文將介紹如何使用Python實現XML中的資料校驗,並給予對應的

See all articles