1.XML
<?xml version="1.0" encoding="UTF-8"?>
<cinema>
<film id="1">
<name>仙剑奇侠传</name>
<author>胡歌</author>
<year>2005</year>
<price>35</price>
</film>
<film id="2">
<name>英雄联盟</name>
<author>拳头</author>
<year>2010</year>
<price>35</price>
</film>
</cinema>
2.JAVA
package com.ss.test.mixtrue;
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 {
public static void main(String[] args) {
//将xml文件当成一个流来处理,读一点处理一点;Dom是直接获取全部xml内容(文件过大有可能造成内存溢出,小型xml解析用的话还比较方便)
SAXReader reader = new SAXReader();
try {
//获取xml文件
Document document = reader.read(new File("C:/Users/Administrator/Desktop/film.xml"));
//获取根结点
Element cinema = document.getRootElement();
//通过根节点获取迭代器
Iterator it = cinema.elementIterator();
//遍历
while (it.hasNext()) {
System.out.println("=====开始遍历=====");
Element film = (Element) it.next();
List<Attribute> filmAttrs = film.attributes();
for (Attribute attr : filmAttrs) {
System.out.println("属性名:" + attr.getName() + "--属性值:"
+ attr.getValue());
}
Iterator itt = film.elementIterator();
while (itt.hasNext()) {
Element filmChild = (Element) itt.next();
System.out.println("节点名:" + filmChild.getName() + "--节点值:" + filmChild.getStringValue());
}
System.out.println("=====结束遍历=====");
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}