最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

dom4j讀取XML文件詳解

 更新時間:2017年11月24日 09:48:25   作者:劉水鏡  
這篇文章主要為大家詳細(xì)介紹了dom4j讀取XML文件的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

dom4j是一個Java的XML API,類似于jdom,用來讀寫XML文件的。dom4j是一個非常非常優(yōu)秀的Java XML API,具有性能優(yōu)異、功能強大和極端易用使用的特點,同時它也是一個開放源代碼的軟件,現(xiàn)在越來越多的Java軟件都在使用dom4j來讀寫XML,特別值得一提的是連Sun的JAXM也在用dom4j。這是必須使用的jar包。

上面說dom4j這么優(yōu)秀,那么好用,那么從今天開始就跟大家一起分享dom4j的一些用法。

dom4j的主要接口都在org.dom4j這個包里定義:


要想弄懂這套接口,關(guān)鍵的是要明白接口的繼承關(guān)系:

讀寫XML文檔主要依賴于org.dom4j.io包,其中提供DOMReader和SAXReader兩類不同方式,而調(diào)用方式是一樣的。這就是依靠接口的好處。

// 從文件讀取XML,輸入文件名,返回XML文檔 
public Document read(String fileName) throws MalformedURLException, DocumentException { 
  SAXReader reader = new SAXReader(); 
  Document document = reader.read(new File(fileName)); 
  return document; 
} 

reader的read方法是重載的,可以通過InputStream, File, Url等不同的參數(shù)來讀取。得到的Document對象就帶表了整個XML。
根據(jù)本人自己的經(jīng)驗,讀取的字符編碼是按照XML文件頭定義的編碼來轉(zhuǎn)換。如果遇到亂碼問題,注意要把各處的編碼名稱保持一致即可。

下面這個例子是SAXReader類通過InputStream讀取xml文件:

所要讀取的xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
<config> 
 <db-info> 
  <driver-name>oracle.jdbc.driver.OracleDriver</driver-name> 
  <url>jdbc:oracle:thin:@localhost:1522:mydb</url> 
  <user-name>drp</user-name> 
  <password>drp</password> 
 </db-info> 
</config> 

讀取xml文件的類:

package com.util; 
 
import java.io.InputStream; 
import java.util.HashMap; 
import java.util.List; 
import java.util.Map; 
 
import org.dom4j.Document; 
import org.dom4j.DocumentException; 
import org.dom4j.Element; 
import org.dom4j.io.SAXReader; 
 
/** 
 * 解析sys-config.xml文件 
 * @author Ronaldinho 
 * 
 */ 
 
public class XmlConfigReader { 
  
 //懶漢式 
 private static XmlConfigReader instance = null; 
  
 //保存jdbc相關(guān)信息 
 private JdbcConfig jdbcConfig = new JdbcConfig(); 
  
 private XmlConfigReader() { 
 
  //建立一個SAXReader對象 
  SAXReader reader=new SAXReader(); 
 
  //通過當(dāng)前線程的類加載器,獲得文件的相對路徑,讀入緩沖輸入流 
  InputStream in=Thread.currentThread().getContextClassLoader().getResourceAsStream("sys-config.xml"); 
  try { 
   //通過流來讀取xml文件 
   Document doc=reader.read(in); 
    
   //讀取jdbc相關(guān)信息 
   Element driverNameElt=(Element) doc.selectObject("/config/db-info/driver-name"); 
   Element urlElt=(Element) doc.selectObject("/config/db-info/url"); 
   Element userNameElt=(Element) doc.selectObject("/config/db-info/user-name"); 
   Element passwordElt=(Element) doc.selectObject("/config/db-info/password"); 
    
   //設(shè)置jdbc相關(guān)信息 
   jdbcConfig.setDrivername(driverNameElt.getStringValue()); 
   jdbcConfig.setUrl(urlElt.getStringValue()); 
   jdbcConfig.setUsername(userNameElt.getStringValue()); 
   jdbcConfig.setPassword(passwordElt.getStringValue()); 
 
  } catch (DocumentException e) { 
   e.printStackTrace(); 
  } 
 } 
  
 public static synchronized XmlConfigReader getInstance() { 
  if (instance==null) { 
   instance = new XmlConfigReader(); 
  } 
  return instance; 
 } 
} 

上面這種方式是通過單例模式生成一個對象,這個對象實例化一個SAXReader,然后將xml文件加載到流當(dāng)中。再通過SAXReader的read()方法將其轉(zhuǎn)換成一個document對象。然后通過這個document對象取到xml文件的節(jié)點的值。

今天就先簡單介紹一下利用dom4j讀取xml文件,后面會陸續(xù)跟大家說說其他的用法。大家不要著急哦。

PS:歡迎各位批評指正!

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java優(yōu)秀類庫Hutool使用示例

    Java優(yōu)秀類庫Hutool使用示例

    Hutool是一個小而全的Java工具類庫,通過靜態(tài)方法封裝,降低相關(guān)API的學(xué)習(xí)成本,提高工作效率,涵蓋了Java開發(fā)開發(fā)中的方方面面,使用Hutool可節(jié)省開發(fā)人員對項目中公用類和公用工具方法的封裝時間,使開發(fā)專注于業(yè)務(wù),同時可以最大限度的避免封裝不完善帶來的bug
    2023-02-02
  • Java?Web項目中如何添加Tomcat的Servlet-api.jar包(基于IDEA)

    Java?Web項目中如何添加Tomcat的Servlet-api.jar包(基于IDEA)

    servlet-api.jar是在編寫servlet必須用到的jar包下面這篇文章主要給大家介紹了基于IDEAJava?Web項目中如何添加Tomcat的Servlet-api.jar包的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • Java 實現(xiàn)Redis存儲復(fù)雜json格式數(shù)據(jù)并返回給前端

    Java 實現(xiàn)Redis存儲復(fù)雜json格式數(shù)據(jù)并返回給前端

    這篇文章主要介紹了Java 實現(xiàn)Redis存儲復(fù)雜json格式數(shù)據(jù)并返回給前端操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • spring boot設(shè)置過濾器、監(jiān)聽器及攔截器的方法

    spring boot設(shè)置過濾器、監(jiān)聽器及攔截器的方法

    這篇文章主要給大家介紹了關(guān)于spring boot設(shè)置過濾器、監(jiān)聽器及攔截器的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 解決SpringBoot使用yaml作為配置文件遇到的坑

    解決SpringBoot使用yaml作為配置文件遇到的坑

    這篇文章主要介紹了解決SpringBoot使用yaml作為配置文件遇到的坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java中Integer128的坑

    Java中Integer128的坑

    本文主要介紹了Java中Integer128的坑,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • java  Super 用法詳解及實例代碼

    java Super 用法詳解及實例代碼

    這篇文章主要介紹了java Super 用法詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • JDK集合源碼之解析TreeMap(一)

    JDK集合源碼之解析TreeMap(一)

    下面小編就為大家?guī)硪黄獪\談java中的TreeMap 排序與TreeSet 排序。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-07-07
  • 詳解Java動態(tài)代理的實現(xiàn)及應(yīng)用

    詳解Java動態(tài)代理的實現(xiàn)及應(yīng)用

    這篇文章主要介紹了詳解Java動態(tài)代理的實現(xiàn)及應(yīng)用的相關(guān)資料,希望通過本文大家能理解掌握J(rèn)ava動態(tài)代理的使用方法,需要的朋友可以參考下
    2017-09-09
  • SpringBoot中分頁插件PageHelper的使用詳解

    SpringBoot中分頁插件PageHelper的使用詳解

    分頁查詢是為了高效展示大量數(shù)據(jù),通過分頁將數(shù)據(jù)劃分為多個部分逐頁展示,原生方法需手動計算數(shù)據(jù)起始行,而使用PageHelper插件則簡化這一過程,本文給大家介紹SpringBoot中分頁插件PageHelper的使用,感興趣的朋友一起看看吧
    2024-09-09

最新評論

米易县| 化州市| 北辰区| 莎车县| 池州市| 无为县| 全南县| 姚安县| 富顺县| 临清市| 无为县| 沙河市| 吐鲁番市| 云和县| 大宁县| 沽源县| 西和县| 广宁县| 霍州市| 武川县| 临沧市| 通海县| 平湖市| 新乐市| 合江县| 卢湾区| 永胜县| 鄂托克前旗| 韶山市| 沁水县| 平阴县| 南昌县| 略阳县| 宁陵县| 九龙城区| 开封县| 合川市| 嘉黎县| 房产| 鄂托克前旗| 前郭尔|