JAVA动态读取xml_Java动态生成和解析xml文件步骤详解
packageday12;importjava.io.FileInputStream;importjava.util.ArrayList;importjava.util.List;importorg.dom4j.Document;importorg.dom4j.Element;importorg.dom4j.io.SAXReader;/*** 使用DOM4J解析XML文檔
*@authortarena
**/
public classParseXMLDemo {public static voidmain(String[] args) {/** 讀取emplist文件,將該xml文檔中的所有員工信息解析出來(lái),
* 并以若干Emp實(shí)例保存,然后將這些員工信息存入到一個(gè)List集合中。*/
/** 使用DOM解析XML的四大致流程:
* 1.創(chuàng)建SAXReader
* 2.使用SAXReader讀取要解析的XML文檔,該步驟就是DOM耗時(shí)耗資源的地方,
* 因?yàn)闀?huì)將文檔所有內(nèi)容解析完畢并存入到內(nèi)存中。
* 讀取方法會(huì)返回一個(gè)Document對(duì)象,該對(duì)象就表示解析出來(lái)的該XML文檔內(nèi)容
* 3.通過(guò)Document對(duì)象獲取根元素(根標(biāo)簽)。
* 4.根據(jù)文檔的結(jié)構(gòu),從根元素開(kāi)始逐級(jí)獲取子元素以達(dá)到遍歷XML文檔數(shù)據(jù)的目的。*/
try{//1
SAXReader reader = newSAXReader();//2
Document doc = reader.read(new FileInputStream("emplist.xml"));/**3.獲取根元素
*Element的每一個(gè)實(shí)例用于表示XML文檔中的一個(gè)元素(一對(duì)標(biāo)簽)
*它提供了很多用于操作當(dāng)前標(biāo)簽的方法,其中常用的用于獲取標(biāo)簽信息的方法有:
*
* String getName() 獲取標(biāo)簽名
*
* Element elements(Sting name) 根據(jù)給定名字獲取當(dāng)前標(biāo)簽中的子標(biāo)簽
*
* List elements()
* 獲取當(dāng)前標(biāo)簽中的所有子標(biāo)簽,返回的集合中是若干Element實(shí)例,每個(gè)為一個(gè)子元素
*
* List elements(String name) 獲取當(dāng)前標(biāo)簽中的所有同名名字元素
*
* String getText() 獲取當(dāng)前標(biāo)簽中間的文本
*
* Attribute attribute(String name) 獲取當(dāng)前標(biāo)簽中指定名字的屬性
**/Element root=doc.getRootElement();
List empList = new ArrayList();/** 獲取標(biāo)簽中的所有標(biāo)簽*/List list =root.elements();/** 將每一個(gè)標(biāo)簽中的內(nèi)容取到,并以一個(gè)Emp實(shí)例保存,然后將該對(duì)象存入集合*/
for(Element empEle : list){//System.out.println(empEle.getName());//獲取name
Element nameEle = empEle.element("name");
String name=nameEle.getText();
System.out.println(name);//獲取age
int age = Integer.parseInt(empEle.elementText("age"));
System.out.println(age);//獲取性別
String gender = empEle.elementText("gender");
System.out.println(gender);//獲取工資
int salary = Integer.parseInt(empEle.elementText("salary"));
System.out.println(salary);//獲取ID
int id = Integer.parseInt(empEle.attributeValue("id"));
Emp emp= newEmp(id , name , age ,gender, salary);
empList.add(emp);
}
System.out.println("解析完成!");for(Emp e:empList){
System.out.println(e);
}
}catch(Exception e) {
e.printStackTrace();
}
}
}
總結(jié)
以上是生活随笔為你收集整理的JAVA动态读取xml_Java动态生成和解析xml文件步骤详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android native java_
- 下一篇: java http请求 工具类_Java