dom4j是一個Java的XML API,是jdom的升級品,用來讀寫XML文件的。dom4j是一個十分優秀的
JavaXML API,具備性能優異、功能強大和極其易使用的特色,它的性能超過sun公司官方的dom技術,
同時它也是一個開放源代碼的軟件,能夠在SourceForge上找到它。java
下載DOM4J的jar包,並導入到工程中dom
建立 SAXReader對象性能
SAXReader reader = new SAXReader();
經過read方法加載xml開放源代碼
Document document = reader.read(new File("book.xml"));
獲取根節點code
Element bookstore = document.getRootElement();
經過elementIterator方法獲取迭代器xml
Iterator it = bookstore.elementIterator();
遍歷迭代器,獲取根節點下節點對象
while(it.hasNext()) Element book = (Element) it.next();
獲取節點屬性element
List<Attribute> attrs = book.attributes(); for(Attribute attr : attrs) { System.out.println("屬性"+attr.getName()+":"+attr.getValue()); }
獲取節點的子節點。
過程爲重複5.6.7。get
下面是一個簡單的小例子,說明一下使用過程及步驟。it
book.xml
<?xml version="1.0" encoding="UTF-8" ?> <bookstore> <book id="1"> <name>111</name> <author>222</author> </book> <book id="2"> <name>333</name> <author>444</author> </book> </bookstore>
DOM4J.java
package com.lpp.test; import java.io.File; import java.util.Iterator; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class DOM4J { public static void main(String[] args) { // TODO Auto-generated method stub //建立 SAXReader對象 SAXReader reader = new SAXReader(); try { //經過read方法加載xml Document document = reader.read(new File("book.xml")); //獲取根節點 Element bookstore = document.getRootElement(); //經過elementIterator方法獲取迭代器 Iterator it = bookstore.elementIterator(); //遍歷迭代器,獲取根節點下節點 while(it.hasNext()) { System.out.println("開始遍歷"); Element book = (Element) it.next(); List<Attribute> attrs = book.attributes(); for(Attribute attr : attrs) { System.out.println("屬性"+attr.getName()+":"+attr.getValue()); } Iterator it2 = book.elementIterator(); while (it2.hasNext()) { Element bookChild = (Element) it2.next(); System.out.println("節點"+bookChild.getName() + ":" + bookChild.getStringValue()); } System.out.println("結束遍歷"); } } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }