注:需要导入dom4j 相关jar包
package com.suse.dom4jtest;
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 DOM4JTest {
/**
* @param args
* @throws DocumentException
*/
public static void main(String[] args) throws DocumentException {
// 解析books.xml文件
SAXReader reader = new SAXReader();
// 通过reader对象的read方法加载xml文件,并获取document对象
Document document = reader.read(new File("src/res/books.xml"));
// 通过document获取根结点bookstore
Element bookStore = document.getRootElement();
// 通过element对象的elementIterator()方法获取迭代器
Iterator it = bookStore.elementIterator();
// 遍历迭代器,获取根结点的信息(书籍)
while (it.hasNext()) {
System.out.println("========开始遍历某一本书======");
Element book = (Element) it.next();// 由于next方法返回的是object类型,而我们遍历的是Element类型的元素,所以我们做下强制转换
// 获取book的属性名和属性值
List<Attribute> bookAttrs = book.attributes();
for (Attribute attr : bookAttrs) {
System.out.println("属性名:" + attr.getName() + "------属性值:"
+ attr.getValue());
}
Iterator itt = book.elementIterator();
while (itt.hasNext()) {
Element bookChild = (Element) itt.next();// 强转同上
System.out.println("节点名:" + bookChild.getName() + "-----节点值:"
+ bookChild.getStringValue());
}
System.out.println("========结束遍历某一本书======");
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book id="1">
<name>冰与火之歌</name>
<author>乔治马丁</author>
<year>2014</year>
<price>89</price>
</book>
<book id="2">
<name>安徒生童话</name>
<year>2004</year>
<price>66</price>
<language>English</language>
</book>
</bookstore>