創建一個XML文件,deptlist.xml

<?xml version="1.0" encoding="UTF-8"?> <list> <dept id="1"> <name>綜合部</name> <createtime>2020-01-01</createtime> <age>400</age> <minister>孫悟空</minister> </dept> <dept id="2"> <name>人事部</name> <createtime>2020-01-02</createtime> <age>300</age> <minister>朱悟能</minister> </dept> <dept id="3"> <name>研發部</name> <createtime>2020-01-03</createtime> <age>200</age> <minister>白龍馬</minister> </dept> <dept id="4"> <name>銷售部</name> <createtime>2020-01-04</createtime> <age>300</age> <minister>沙悟凈</minister> </dept> <dept id="5"> <name>售后部</name> <createtime>2020-01-05</createtime> <age>1000</age> <minister>唐三藏</minister> </dept> </list>
2.創建一個xml.java文件
package xml; /** * @author xingsir * 部門類 * 該類每個實例用於表示一個部門信息 */ public class Dept { //創建屬性 private int id; private String name; private String createtime; private int age; private String minister; /* * 右鍵點-Source-點 -generate constructor using fields,選擇要生成的屬性 * 這個選項自動生成帶參數的 構造函數 */ public Dept(int id, String name, String createtime, int age, String minister) { super(); this.id = id; this.name = name; this.createtime = createtime; this.age = age; this.minister = minister; } /* * 右鍵點-Source-點 -generate getters and setters,選擇要生成的屬性 */ public String toString() { return id+","+name+","+createtime+","+age+","+minister; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCreatetime() { return createtime; } public void setCreatetime(String createtime) { this.createtime = createtime; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getMinister() { return minister; } public void setMinister(String minister) { minister = minister; } }
3.創建 ParseXmlDemo2.java文件用於解析
package xml; import java.io.File; import java.util.ArrayList; import java.util.List; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; /** * @author xingsir * 使用DOM解析XML文檔 */ public class ParseXmlDemo2 { public static void main(String[] args) { /* * 將deptlist.xml文件中的所有部門信息讀取出來 */ List<Dept> deptList = new ArrayList<>(); try { /* * 使用DOM4J解析XML的大致步驟 * 1:創建SAXReader * 2:使用SAXReader讀取指定的xml文檔並生成Document對象 * 3:通過Document對象獲取根元素 * 4:從根元素開始逐級獲取子元素已達到遍歷XML文檔數據的目的 */ SAXReader reader=new SAXReader(); Document doc= reader.read(new File("deptlist.xml")); /* * Document提供了獲取根元素的方法:Element getRootElement() * * Element每個實例用於表示XML文檔中的一個元素(一對標簽) * 常用方法: * String getName()獲取當前標簽的名字 * String getText()獲取當前標簽中間的文本信息 * Element element(String name)獲取當前標簽中指定名字的子標簽 * List elements()獲取當前標簽中所有子標簽,返回的List集合中會包含若干的Element實例,每個實例是其中一個子標簽 * List elements(String name)獲取當前標簽中所有同名子標簽(指定的名字) */ Element root= doc.getRootElement(); //獲取根標簽下所有<dept>標簽 List<Element>list =root.elements("dept"); //遍歷部門標簽獲取每個部門的信息 for(Element empEle :list) { //獲取部門名稱 Element nameEle= empEle.element("name"); String name=nameEle.getText(); //獲取創建時間,可以用elementText()直接獲取文本信息 String createtime =empEle.elementText("createtime"); //獲取年齡 int age = Integer.parseInt(empEle.elementText("age")); //獲取ID int id = Integer.parseInt(empEle.attributeValue("id")); String minister=empEle.elementText("minister"); //實例化 Dept dept =new Dept(id, name, createtime,age,minister); //添加 deptList.add(dept); } System.out.println("解析完畢!"); //遍歷 for(Dept d : deptList) { System.out.println(d); } } catch (Exception e) { e.printStackTrace(); } } }