Java獲取XML節(jié)點(diǎn)總結(jié)之讀取XML文檔節(jié)點(diǎn)的方法
dom4j是Java的XML API,用來讀寫XML文件的。目前有很多場景中使用dom4j來讀寫xml的。
要使用dom4j開發(fā),需要下載導(dǎo)入dom4j相應(yīng)的jar文件。
官網(wǎng)下載:http://www.dom4j.org/dom4j-1.6.1/
github下載:http://dom4j.github.io/
下載解壓之后如圖所示:

我們只需要把dom4j-1.6.1.jar文件構(gòu)建到我們開發(fā)項(xiàng)目中就可以了。

下面就以Eclipse創(chuàng)建java項(xiàng)目的構(gòu)建方法為例說明:
聲明:本Java項(xiàng)目的開發(fā)環(huán)境JDK1.8,Eclipse版本 Neon.1 Release (4.6.1)
首先創(chuàng)建一個demo項(xiàng)目:

在demo項(xiàng)目中創(chuàng)建一個lib文件,把dom4j-1.6.1.jar文件拷貝到lib中,然后右鍵dom4j-1.6.1jar文件。如圖所示:

點(diǎn)擊Add to Bulid Path即可構(gòu)建到項(xiàng)目中去了。
導(dǎo)入成功如圖所示:

在項(xiàng)目開發(fā)的過程中可以參考docs文件夾的(幫助文檔),找到index.html打開,點(diǎn)擊Quick start可以通過幫助文檔進(jìn)行學(xué)習(xí) dom4j進(jìn)行xml的解析。
如圖所示:

下面我將以詳細(xì)例子去介紹Java操作xml文件,文件名為exmple.java。
package vastsum;
import java.io.File;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
/**
* 讀取下xml文檔,獲得document對象。
* 本文為xml連載第一篇,以下代碼可以直接運(yùn)行,結(jié)尾附上源碼下載地址。
*/
class exmple {
public static void main(String[] args) throws DocumentException
{
SAXReader reader = new SAXReader();
Document document = reader.read(new File("./src/contact.xml"));
/**
* 節(jié)點(diǎn)對象的操作方法
*/
//獲取文檔根節(jié)點(diǎn)
Element root = document.getRootElement();
//輸出根標(biāo)簽的名字
System.out.println(root.getName());
//獲取根節(jié)點(diǎn)下面的所有子節(jié)點(diǎn)(不包過子節(jié)點(diǎn)的子節(jié)點(diǎn))
List<Element> list = root.elements() ;
//遍歷List的方法
for (Element e:list){
System.out.println(e.getName());
}
//獲得指定節(jié)點(diǎn)下面的子節(jié)點(diǎn)
Element contactElem = root.element("contact");//首先要知道自己要操作的節(jié)點(diǎn)。
List<Element> contactList = contactElem.elements();
for (Element e:contactList){
System.out.println(e.getName());
}
//調(diào)用下面獲取子節(jié)點(diǎn)的遞歸函數(shù)。
getChildNodes(root);
//獲得當(dāng)前標(biāo)簽下指定名稱的第一個子標(biāo)簽
Element conElem = root.element("contact");
System.out.println(conElem.getName());
//獲得更深層次的標(biāo)簽(一層一層的獲?。?
Element nameElem = root.element("contact").element("name");
System.out.println(nameElem.getName());
}
//遞歸查詢節(jié)點(diǎn)函數(shù),輸出節(jié)點(diǎn)名稱
private static void getChildNodes(Element elem){
System.out.println(elem.getName());
Iterator<Node> it= elem.nodeIterator();
while (it.hasNext()){
Node node = it.next();
if (node instanceof Element){
Element e1 = (Element)node;
getChildNodes(e1);
}
}
}
}
下面是對應(yīng)的xml文件,文件名為contact.xml:
<?xml version="1.0" encoding="utf-8"?>
<contactList>
<contact id="001" class="style">
<name>張三</name>
<age>20</age>
<phone>134222223333</phone>
<email>zhangsan@qq.com</email>
<qq>432221111</qq>
</contact>
<contact id="002">
<name>李四</name>
<age>20</age>
<phone>134222225555</phone>
<email>lisi@qq.com</email>
<qq>432222222</qq>
</contact>
<contactTwo>
<name>王五</name>
<age>32</age>
<phone>465431341</phone>
<emali>af@qq.com</emali>
<qq>46164694</qq>
</contactTwo>
<test>測試</test>
<test>其他用途</test>
</contactList>
兩個文件的目錄如題所示:

以上就是小編為大家?guī)淼腏ava獲取XML節(jié)點(diǎn)總結(jié)之讀取XML文檔節(jié)點(diǎn)的方法全部內(nèi)容了,希望大家多多支持腳本之家~
相關(guān)文章
簡單聊一聊Java線程池ThreadPoolExecutor
在使用線程池之后,開啟線程就變成了在線程池當(dāng)中找到一個空閑的線程,銷毀線程變成了歸還線程到線程池的過程,下面這篇文章主要給大家介紹了關(guān)于Java線程池ThreadPoolExecutor的相關(guān)資料,需要的朋友可以參考下2022-06-06
使用Feign設(shè)置Token鑒權(quán)調(diào)用接口
這篇文章主要介紹了使用Feign設(shè)置Token鑒權(quán)調(diào)用接口,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
Java實(shí)現(xiàn)文件夾中內(nèi)容定時刪除
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)文件夾中內(nèi)容定時刪除,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08
java 中如何獲取字節(jié)碼文件的相關(guān)內(nèi)容
這篇文章主要介紹了java 中如何獲取字節(jié)碼文件的相關(guān)內(nèi)容的相關(guān)資料,需要的朋友可以參考下2017-04-04
Spring Boot如何配置內(nèi)置Tomcat的maxPostSize值
這篇文章主要介紹了Spring Boot如何配置內(nèi)置Tomcat的maxPostSize值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
Springboot全局異常捕獲及try catch區(qū)別解析
這篇文章主要介紹了Springboot全局異常捕獲及try catch區(qū)別解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06
使用.NET Core3.0創(chuàng)建一個Windows服務(wù)的方法
這篇文章主要介紹了使用.NET Core3.0創(chuàng)建一個Windows服務(wù)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04

