使用DOM4J解析XML文檔1


package XML;
/*
 * 使用DOM4J解析XML文檔的大致步驟
 * 1:創建SAXReader
 * 2:使用SAXReader讀取XML文檔並生成Document對象
 * 這一步DOM4J耗時耗資源的地方,
 * 因為要將XML文檔全部讀取完畢並以Document對象形式
 * 保存在內存
 * 3:通過Document對象獲取根元素
 * 4:重根元素開始按照XML文檔結構逐級獲取子元素
 * 以達到遍歷XML文檔數據的目的
 * 
 * 
 */

import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class ParseXML {
	public static void main(String[] args) {
		try {
			SAXReader reader =new SAXReader();
			Document doc=reader.read(new FileInputStream("emplist.xml"));
			/*
			 * Document 提供了獲取根元素的方法:Element getRootElement()
			 * Elment 的每一個實例擁有表示XML文檔中的一個元素
			 * Elment提供了獲取其表示的元素的相關信息的方法,常用的:
			 * 
			 * String getName()   獲取當前標簽的名字
			 * Element elment(String name)   獲取當前標簽下指定名字的子標簽
			 * List elments()  獲取當前標簽下所有子標簽
			 * List elments(String name)  獲取當前標簽下所有指定名字的同名子標簽
			 * String getText()  獲取當前標簽中間的文本
			 * String elmentText(String name)  獲取當前標簽下指定名字的子標簽中間的文本
			 * e.elmentText(“a”)  等同於 e.elment("a").getText()
			 * Attribyte attribyte(String name) 獲取當前標簽中指定名字的屬性
			 * 
			 */
			Element root =doc.getRootElement();
			List<Element> empList = root.elements("emp");
			/*
			 * 保存所有員工信息的集合
			 * 將所有<EMP>標簽保存的員工信息以EMP實例形式存儲並存入到list集合中
			 */
			List<Emp> list  =new ArrayList<Emp>();
			for(Element empEle:empList) {
				//獲取名字
				int id = Integer.parseInt(empEle.attributeValue("id"));
				String name  =empEle.element("name").getText();
				int age =Integer.parseInt(empEle.elementText("age"));
				String gender=empEle.elementText("gender");
				int salary=Integer.parseInt(empEle.elementText("salary"));
				Emp  emp =new Emp(id,name,age,gender,salary);
				list.add(emp);
				
			}
			System.out.println("解析完畢");
			for(Emp e:list) {
				System.out.println(e);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM