中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java Domj4讀取xml文件的方法

發布時間:2020-10-30 12:17:22 來源:億速云 閱讀:278 作者:小新 欄目:編程語言

java Domj4讀取xml文件的方法?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!

獲取節點:

Iterator  Element.nodeIterator();  //獲取當前標簽節點下的所有子節點

獲取 標簽:

Element Document.getRootElement();  //獲取xml文檔的根標簽

Element  ELement.element("標簽名") //指定名稱的第一個子標簽

Iterator<Element>Element.elementIterator("標簽名");// 指定名稱的所有子標簽

List<Element>  Element.elements(); //獲取所有子標簽

獲取屬性:

String   Element.attributeValue("屬性名") //獲取指定名稱的屬性值

Attribute   Element.attribute("屬性名");//獲取指定名稱的屬性對象

Attribute.getName()  //獲取屬性名稱

Attibute.getValue()  //獲取屬性值

List<Attribute>     Element.attributes();  //獲取所有屬性對象.推薦使用方案。

Iterator<Attribute>      Element.attibuteIterator(); //獲取所有屬性對象

獲取文本:

Element.getText();  //獲取當前標簽的文本

Element.elementText("標簽名")//獲取當前標簽的指定名稱的子標簽的文本內容

案例:

import java.io.File;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import org.junit.Test;

/**
 * 第二個dom4j讀取xml文件內容
 * 節點
 * 標簽
 * 屬性
 * 文本
 * @author APPle
 *
 */
public class Demo2 {
	
	/**
	 * 得到節點信息
	 */
	@Test
	public void test1() throws Exception{
		//1.讀取xml文檔,返回Document對象
		SAXReader reader = new SAXReader();
		Document doc = reader.read(new File("./src/contact.xml"));
		
		//2.nodeIterator: 得到當前節點下的所有子節點對象(【不包含孫以下的節點】)
		Iterator<Node> it = doc.nodeIterator();//返回的是一個迭代器對象,迭代器里面存放的就是Node,給出泛型為Node
		while(it.hasNext()){//判斷是否有下一個元素
			Node node = it.next();//取出元素
			String name = node.getName();//得到節點名稱
			//System.out.println(name);
			
			//System.out.println(node.getClass());
			//繼續取出其下面的子節點
			//只有【標簽節點】才有子節點
			//判斷當前節點是否是標簽節點
			if(node instanceof Element){
				Element elem = (Element)node;//node是Node類型的,因此要向下轉型
				Iterator<Node> it2 = elem.nodeIterator();
				while(it2.hasNext()){
					Node n2 = it2.next();
					System.out.println(n2.getName());
				}
			}
		}
	}
	
	/**
	 * 遍歷xml文檔的所有節點
	 * @throws Exception
	 */
	@Test
	public void test2() throws Exception{
		//1.讀取xml文檔,返回Document對象
		SAXReader reader = new SAXReader();
		Document doc = reader.read(new File("./src/contact.xml"));
		
		//得到根標簽。contactList
		Element rooElem = doc.getRootElement();
		
		getChildNodes(rooElem);

	}
	
	/**
	 * 獲取 傳入的標簽下的所有子節點。Element elem只有Element標簽才有子節點
	 * @param elem
	 */
	private void getChildNodes(Element elem){
		System.out.println(elem.getName());//獲取到了根標簽的名稱
		
		//得到子節點
		Iterator<Node> it = elem.nodeIterator();
		while(it.hasNext()){
			Node node = it.next();
			
			//1.判斷是否是標簽節點
			if(node instanceof Element){
				Element el = (Element)node;
				//遞歸
				getChildNodes(el);
			}
		};
	}
	
	/**
	 * 獲取標簽
	 */
	@Test
	public void test3() throws Exception{
		//1.讀取xml文檔,返回Document對象
		SAXReader reader = new SAXReader();
		Document doc = reader.read(new File("./src/contact.xml"));
		
		//2.得到根標簽
		Element  rootElem = doc.getRootElement();
		//得到標簽名稱
		String name = rootElem.getName();
		System.out.println(name);//contactList
		
		//3.得到當前標簽下指定名稱的【第一個】【子】標簽
		
		/*Element contactElem = rootElem.element("contact");
		System.out.println(contactElem.getName());*/
		
		
		//4.得到當前標簽下指定名稱的所有子標簽,指定了contact名稱,就得到這個名稱的所有同名的標簽
		//這里制定了名稱,有局限性
		/*Iterator<Element> it = rootElem.elementIterator("contact");
		while(it.hasNext()){
			Element elem = it.next();
			System.out.println(elem.getName());
		}*/
		
		
		//5.得到當前rootElem標簽下的的所有子標簽對象,這里會拿出所有子標簽對象。推薦使用。
		List<Element> list = rootElem.elements();
		//遍歷List的方法
		//1)傳統for循環  2)增強for循環 3)迭代器
		/*for(int i=0;i<list.size();i++){
			Element e = list.get(i);
			System.out.println(e.getName());
		}*/
		
		for(Element e:list){
			System.out.println(e.getName());
		}
		/*
		Iterator<Element> it = list.iterator(); //ctrl+2 松開 l
		while(it.hasNext()){
			Element elem = it.next();
			System.out.println(elem.getName());
		}*/
		
		//獲取更深層次的標簽(方法只能一層層地獲取)
		Element nameElem = doc.getRootElement().
					element("contact").element("name");
		System.out.println(nameElem.getName());
		
	}
	
	/**
	 * 獲取屬性
	 */
	@Test
	public void test4() throws Exception{
		//1.讀取xml文檔,返回Document對象
		SAXReader reader = new SAXReader();
		Document doc = reader.read(new File("./src/contact.xml"));
		
		//獲取屬性:(先獲得屬性所在的標簽對象,然后才能獲取屬性)
		//1.得到標簽對象
		Element contactElem = doc.getRootElement().element("contact");
		//2.得到屬性
		//2.1  得到指定名稱的屬性值
		/*
		String idValue = contactElem.attributeValue("id");
		System.out.println(idValue);
		*/
		
		//2.2 得到指定屬性名稱的屬性對象Attribute
		/*Attribute idAttr = contactElem.attribute("id");
		//getName: 屬性名稱    getValue:屬性值
		System.out.println(idAttr.getName() +"=" + idAttr.getValue());*/
		
		//2.3 得到【所有】屬性對象,返回LIst集合。不需要知道屬性名稱和多少個屬性
		/*List<Attribute> list = contactElem.attributes();//推薦使用方案
		//遍歷屬性
		for (Attribute attr : list) {
			System.out.println(attr.getName()+"="+attr.getValue());
		}*/
		
		//2.4 得到【所有屬性】對象,返回迭代器
		Iterator<Attribute> it = contactElem.attributeIterator();
		while(it.hasNext()){
			Attribute attr = it.next();
			System.out.println(attr.getName()+"="+attr.getValue());
		}
		
	}
	
	/**
	 * 獲取文本
	 */
	@Test
	public void test5() throws Exception{
		//1.讀取xml文檔,返回Document對象
		SAXReader reader = new SAXReader();
					
		Document doc = reader.read(new File("./src/contact.xml"));
		
		
		/**
		 * 注意: 空格和換行也是xml的內容
		 */
		String content = doc.getRootElement().getText();
		System.out.println(content);
		
		
		//獲取文本(先獲取標簽對象,再獲取標簽上的文本)
		Element nameELem = 
			doc.getRootElement().element("contact").element("name");
		//1. 得到文本
		String text = nameELem.getText();
		System.out.println(text);
		
		//2. 得到指定子標簽名的文本內容
		String text2 = 
			doc.getRootElement().element("contact").elementText("phone");
		System.out.println(text2);
		
	}
	
	
}

感謝各位的閱讀!看完上述內容,你們對java Domj4讀取xml文件的方法大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东城区| 随州市| 原平市| 衡阳县| 德昌县| 东山县| 屏边| 甘洛县| 嘉兴市| 佛坪县| 太仓市| 梁河县| 万安县| 祥云县| 廊坊市| 龙岩市| 双峰县| 内丘县| 丰镇市| 同江市| 周口市| 青神县| 高密市| 法库县| 四平市| 丰镇市| 夏河县| 丹巴县| 济宁市| 东明县| 郓城县| 石楼县| 长岭县| 贡嘎县| 新干县| 和政县| 安丘市| 高雄县| 安吉县| 莒南县| 霍城县|