DOM4J也不是java官方提供的xml文件解析的方式,需要自己下载jar包,可以参考下载位置:点击打开链接
DOM4jTest.java
package dom4j;
import java.io.File;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Dom4jTest {
@SuppressWarnings({ "rawtypes", "unchecked" })
public static void main(String[] args) throws Exception {
// 解析books.xml文件
// 创建SAXReader的对象reader
SAXReader reader = new SAXReader();
// reader对象的read方法加载books.xml文件,获取document对象
Document document = reader.read(new File("books.xml"));
// 通过document对象获取根节点bookstore
Element bookStore = document.getRootElement();
// 遍历迭代器,获取根节点中的信息(书籍)
Iterator it = bookStore.elementIterator();
while (it.hasNext()) {
System.out.println("----------开始遍历某本书------------");
Element book = (Element) it.next();
// 获取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();
//获取book子节点的属性名和属性值
System.out.println("节点名:"+bookchild.getName()+"----节点值:"+bookchild.getName());
}
System.out.println("----------结束遍历某本书------------");
}
}
}
books.xml
<?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>77</price>
<language>English</language>
</book>
<book id="3">
<name>红楼梦</name>
<author>曹雪芹</author>
<year>2000</year>
<price>198</price>
<language>Chinese</language>
</book>
</bookstore>
运行结果截图: