Java使用dom4j解析xml、讀取xml文件圖文教程
技能分析:解析XML
使用DOM4J解析XML文檔的步驟:
Dom4j 是一個(gè)開源的 XML 解析框架,它基于 Java 的 sax 解析器和 jaxp 解析器開發(fā),提供了靈活簡便、性能優(yōu)良、擴(kuò)展性強(qiáng)的 XML 解析和生成功能。
Dom4J通過SAXReader對(duì)象加載并解析xml文件,把它轉(zhuǎn)換為內(nèi)存中的Document對(duì)象,接著對(duì)Document對(duì)象中的元素進(jìn)行添加、更新和刪除操作,并且通過XMLWriter對(duì)象把修改后的Document對(duì)象保存到xml文件中。
幫助手冊(cè):Overview (dom4j 1.6.1 API)

Dom4j核心對(duì)象
1.SAXReader:xml解析器
(1)創(chuàng)建SASXReader對(duì)象,無參構(gòu)造方法
(2)調(diào)用read(xml文件資源),讀取并解析xml,得到Document對(duì)象
2.Document:xml文檔
調(diào)用ELement getRootELement() 得到 根標(biāo)簽對(duì)象
3.ELement:
(1)獲取第一個(gè)子標(biāo)簽:Element element(標(biāo)簽名)
(2)獲取所有子標(biāo)簽:List elements(標(biāo)簽名)
(3)獲取屬性:Attribute attribute(屬性名)
(4)獲取標(biāo)簽的內(nèi)容:elementText()
(5)獲取屬性的值:attributeValue()
配置Dom4j的jar包
1.在項(xiàng)目根目錄下創(chuàng)建lib文件夾
2.將dom4j.jar拷貝到lib目錄下

3. 點(diǎn)擊Project Structure

4.再點(diǎn)擊Libraries,點(diǎn)擊“+”,添加Java

5.進(jìn)入Select Library Files界面,點(diǎn)擊lib文件夾

6.添加后,點(diǎn)擊左下角Apply,再點(diǎn)應(yīng)用,就完成了

讀取xml文件
(1)創(chuàng)建SAX解析器SAXReader對(duì)象,用于讀取xml文件
SAXReader saxReader = new SAXReader();
(2)讀取xml文件,得到Document對(duì)象:
Document document = saxReader.read("User.xml");
注:若read下有紅色波浪線,則直接alt+enter拋異常即可
(3) 通過Document對(duì)象獲取根元素
Element rootElement = document.getRootElement();
(4)通過父元素獲取子元素:
獲取迭代器:elementIterator(),迭代獲取。
指定元素名:element(元素名) 獲取指定元素名的第一個(gè)子元素
獲取指定元素: elements(元素名) List 指定元素名的所有的子元素
(5)通過元素獲取它的屬性:
獲取迭代器:attributeIterator(),迭代獲取。
指定索引(0開始)或名字:attribute(索引)、attribute(屬性名)
讀取User.xml文件
<?xml version="1.0" encoding="utf-8"?>
<users>
<user userId="1">
<username>admin</username>
<pwd>123</pwd>
</user>
<user userId="2">
<username>lisi</username>
<pwd>123</pwd>
</user>
</users>src.demo1文件:
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.util.List;
public class demo1 {
public static void main(String[] args) throws DocumentException {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read("User.xml");
Element rootElement = document.getRootElement();
//打印根標(biāo)簽名字
System.out.println("標(biāo)簽名:"+rootElement.getName());
List<Element> userElements = rootElement.elements("user");
for(Element userEle:userElements){
//子標(biāo)簽
Element usernameEle = userEle.element("username");
//獲取文本
System.out.println("username:"+usernameEle.getText());
Element passwordEle = userEle.element("pwd");
System.out.println("password:"+passwordEle.getText());
//屬性
Attribute id = userEle.attribute("userId");
System.out.println("id屬性的值:"+id.getText());
}
}
}運(yùn)行結(jié)果:

總結(jié)
到此這篇關(guān)于Java使用dom4j解析xml、讀取xml文件的文章就介紹到這了,更多相關(guān)Jav dom4j解析讀取xml文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Java中由于數(shù)據(jù)太大自動(dòng)轉(zhuǎn)換成科學(xué)計(jì)數(shù)法的問題
今天小編就為大家分享一篇解決Java中由于數(shù)據(jù)太大自動(dòng)轉(zhuǎn)換成科學(xué)計(jì)數(shù)法的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07
詳解spring+springmvc+mybatis整合注解
本篇文章主要介紹了詳解spring+springmvc+mybatis整合注解,詳細(xì)的介紹了ssm框架的使用,具有一定的參考價(jià)值,有興趣的可以了解一下2017-04-04
Spring Boot產(chǎn)生環(huán)形注入的解決方案
這篇文章主要介紹了Spring Boot產(chǎn)生環(huán)形注入的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
BiConsumer接口中的方法andThen?accept使用詳解
這篇文章主要為大家介紹了BiConsumer接口中的方法andThen?accept使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
Java使用POI從Excel讀取數(shù)據(jù)并存入數(shù)據(jù)庫(解決讀取到空行問題)
有時(shí)候需要在java中讀取excel文件的內(nèi)容,專業(yè)的方式是使用java POI對(duì)excel進(jìn)行讀取,這篇文章主要給大家介紹了關(guān)于Java使用POI從Excel讀取數(shù)據(jù)并存入數(shù)據(jù)庫,文中介紹的辦法可以解決讀取到空行問題,需要的朋友可以參考下2023-12-12
java調(diào)用微信現(xiàn)金紅包接口的心得與體會(huì)總結(jié)
這篇文章主要介紹了java調(diào)用微信現(xiàn)金紅包接口的心得與體會(huì)總結(jié),有需要的朋友可以了解一下。2016-11-11
idea創(chuàng)建maven父子工程導(dǎo)致子工程無法導(dǎo)入父工程依賴
創(chuàng)建maven父子工程時(shí)遇到一個(gè)問題,本文主要介紹了idea創(chuàng)建maven父子工程導(dǎo)致子工程無法導(dǎo)入父工程依賴,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04

