1. 程式人生 > >使用dom4j工具:讀取xml標籤(二)

使用dom4j工具:讀取xml標籤(二)

package dom4j_read;

import java.io.File;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

/**
 * 讀取xml的標籤
 *		getRootElement():獲取根標籤
 *		getName():獲取標籤名稱
 *		element("XX"):獲取第一個XX名的子標籤
 *		elements("XX"):獲取所有XX名的子標籤
 *		elements():獲取所有標籤
 *		element().element(). ~~~:可以多次套用
 *		 
 * @author Administrator
 *
 */
public class Demo02 {
	public static void main(String[] args) throws Exception {
		// 建立xml解析器物件
		SAXReader reader = new SAXReader();

		Document doc = reader.read(new File("./src/contact.xml"));

		// System.out.println(doc);
		
		/*
		 * 讀取標籤
		 */
		// 1.1 讀取根標籤
		Element rootElem = doc.getRootElement();
		System.out.println(rootElem);
		
		// 1.2 獲取標籤名稱
		System.out.println(rootElem.getName());
		
		// 1.3 獲取第一個子標籤
		Element conElem = rootElem.element("contact");
		System.out.println(conElem);
		
		// 1.4獲取所有同名的子標籤(指定名字)
		List<Element> list = rootElem.elements("contact");
		// 遍歷List
		// 幾種方式?
		// 1)傳統for迴圈
		/*
		for(int i=0; i<list.size(); i++) {
			System.out.println(list.get(i));
		}
		*/
		
		// 2)foreach迴圈
		for(Element e : list) {
			System.out.println(e);
		}
		System.out.println("--------------------------");
		// 3)迭代器
		/*
		Iterator<Element> it = list.iterator();
		while(it.hasNext()) {
			Element e =  it.next();
			System.out.println(e);
		}
		*/
		
		// 1.5 獲取所有子標籤(不指定名稱)
		List<Element> eList = rootElem.elements();
		for(Element e : eList) {
			System.out.println(e);
		}
		System.out.println("--------------------------");
		// 1.6 拿到第一個contact標籤的name標籤
		Element nameElem = rootElem.element("contact").element("name");
		
		System.out.println(nameElem);
		
	}
}

xml中,結構如下:

<?xml version="1.0" encoding="gbk"?>
<contact-list>
	<contact id="001" name="eric">
		<name>張三</name>
		<gender>男</gender>
		<phone>134001114</phone>
		<email>[email protected]</email>
		<address>成都</address>
	</contact>
	<contact id="002">
		<name>李四</name>
		<gender>男</gender>
		<phone>134001115</phone>
		<email>
[email protected]
</email> <address>廣州</address> </contact> <contact id="003"> <name>王五</name> <gender>男</gender> <phone>134001116</phone> <email>[email protected]</email> <address>上海</address> </contact> </contact-list>

相關推薦

使用dom4j工具讀取xml標籤

package dom4j_read; import java.io.File; import java.util.List; import org.dom4j.Document; import or

c++效能測試工具google benchmark入門

上一篇中我們初步體驗了google benchmark的使用,在本文中我們將更進一步深入瞭解google benchmark的常用方法。 本文索引 向測試用例傳遞引數 簡化多個類似測試用例的生成 使用引數生成器 向測試用例傳遞引數 之前我們的測試用例都只接受一個be

岡薩雷斯數字影象處理第二章數字圖形基礎——數學工具

陣列操作與矩陣操作的區別: 也就是說,除非特別說明,否則以後所提到的矩陣之間的操作都是元畫素與對應畫素之間的操作。 線性運算與非線性運算(和純數學裡面的定義相同): 例如,求和是線性運算,取最大值是非線性運算 灰度影象的集合與邏輯運算: 在灰度影象領域,集合的

java文件註釋規範javadoc標籤

javadoc標籤必須從一行的開頭(在任何前導空格和可選的星號之後)開始,否則將被視為普通文字。 按照慣例,具有相同名稱的標籤被組合在一起(標籤大小寫敏感)。 例如,將所有@see標記放在一起。標籤可以分為: 塊標籤:只能放在主要描述部分後面的標籤部分。 塊標籤的格式為:@

MyEclipse Web開發教程XML & XML架構

MyEclipse 線上訂購年終抄底促銷!火爆開搶>> MyEclipse最新版下載 1.MyEclipse中的XSD編輯 本文件介紹MyEclipse XML Schema(XSD)編輯器中的一些可用函式。XML Schema(XSD)編輯器包括高階XSD編輯,例如:

工具教程第三十一講電報的使用

這裡是王團長區塊鏈學院,與最優秀的區塊鏈人一起成長!今天給大家講講電報Telegram的使用。 第三步、註冊使用Telegram 1、點開telegram,點選開始 2、在選擇國家處選擇中國China,填寫手機號碼,最後點“√”進入下一步

Java讀取和解析Excel資料基於Apache POI

Java讀取和解析Excel資料:基於Apache POI(二) 假設附錄1文章中的test.xls是對員工的考勤記錄表。需要根據這張excel表統計員工的加班時間,那麼需要重點關注第五列的下班時候的打卡記錄時間。我寫一個Java程式,根據附錄1中那樣的excel表中的下班打卡時間統計員工在

【無私分享ASP.NET CORE 專案實戰第八章讀取配置檔案 讀取自定義配置檔案

目錄索引 簡介   但隨之產生了問題:我們使用的是在 Startup.cs 中(如下圖)來實現配置讀取,有兩個問題 ① 我們如果定義N種配置,是否要再這裡新增N條這樣的配置 ; ② 如果我們的配置不想寫在appsettings.json中呢     解決問題

抓包工具Fiddler的使用教程如何模擬設定斷點

繼續之前的Fiddler的使用教程: 如何模擬設定斷點 在專案的實踐過程中,經常遇到一個點選事件,觸發兩個並行的請求,比如A、B兩個請求,哪個請求響應的比較快,則展示誰的資料。 在測試的時候,我們要測試三個場景: 用例編號 場景

Spring源碼IOC原理解析

main 節點 定義 nat ner multicast esp loading more 版權聲明:本文為博主原創文章,轉載請註明出處,歡迎交流學習! 接著上一章節的內容,我們來分析當new一個FileSystemXmlApplicationContext對

Spark源代碼分析之六Task調度

oge 3.4 總結 utili filter 相關 .com ram 順序 話說在《Spark源代碼分析之五:Task調度(一)》一文中,我們對Task調度分析到了DriverEndpoint的makeOffers()方法。這種方法針對接收到的Re

初等數學問題解答-9恒等變形

教育 奧賽 包括 美國 $$ col 高中數學 arr 國內 本題適合初一以上數學愛好者解答 問題: 若 $abc = -1$ 且 $\dfrac{a^2}{c} + \dfrac{b}{c^2} = 1$,求 $ab^5 + bc^5 + ca^5$ 的值

編程題#3奇偶排序

log cnblogs 保存 比較 如果 () return names space #include <iostream> using namespace std; int main() { int n, a[1000]; // 一共n個數,n不超過

第六章循環結構

結構 不執行 三種 表達式 成了 不改變 條件 運算符 步驟 第六章:循環結構(二) 一. for 循環 1.循環結構的四個組成部分 (1). 初始部分:設置循環的初始狀態,比如我們設置記錄循環次數的變量 i 為 0 . (2). 循環體:重復執行的代碼 .

第79天jQuery事件總結

ide 是什麽 導致 另一個 prevent 移除 prop fun 限制 上一篇講到jQuery中的事件,深入學習了加載DOM和事件綁定的相關知識,這篇主要深入討論jQuery事件中的合成事件、事件冒泡和事件移除等內容。   一、合成事件   jQuery有

計算機網絡相關應用層協議HTTP

toc connect html文本 con 也不會 http服務 lang 代碼 保存 前言 復習下計算機網絡的知識並記錄 正文 定義:HTTP協議(HyperText Transfer Protocol,超文本傳輸協議)是用於從WWW服務器傳輸超文本到本地瀏覽器的傳送協

kaggle入門項目Titanic存亡預測數據處理

理解 ima 簡單 標識符 數據處理 let ger 好的 元素 原kaggle比賽地址:https://www.kaggle.com/c/titanic 原kernel地址:A Data Science Framework: To Achieve 99% Accuracy

作業8常用java命令

col ota rop 例子 error oracle code ref 信息 一、jinfo(Configuration Info for Java) 1、功能:jinfo可以實時地查看和調整虛擬機的各項參數。 2、參數: 選項 作用 -flag name

Python基礎【day03】字典進階

本節內容 深淺拷貝 迴圈方式 字典常用方法總結 一、深淺拷貝 列表、元組、字典(以及其他) 對於列表、元組和字典而言,進行賦值(=)、淺拷貝(copy)、深拷貝(deepcopy)而言,其記憶體地址是變化不通的。 賦值(=) 賦值只是建立一個變數,該變數指向原來的記憶體地址

網路程式設計基礎【day08】簡單socket例項

本節內容 1、概述 2、socket例項 3、總結 一、概述   之前我們只是介紹了soket的概念和一些邏輯圖表,下面我們來看看,socket的客戶端和服務端到底是怎麼用的? 二、socket例項 2.1 客戶端 2.1.1 客戶端程式碼邏輯圖 2.1.2 客戶端程式碼