DOM4J为非官方提供的,在使用前需到官网自行下载,并在项目中导入jar包在该项目上右击(选择build path,后选择Add external archives,最后在选择刚才下载的jar包)
详细步骤如下(解析以下简易xml文件)
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book id="1">
<name>活着</name>
<author>余华</author>
<price>89</price>
</book>
<book id="2">
<name>雪落香杉树</name>
<author>戴维.加特森</author>
<price>77</price>
</book>
</bookstore
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.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Dom4jTest {
public static void main(String[] args) {
//创建SAXReader对象
SAXReader sr = new SAXReader();
try {
//通过SAXReader对象的read方法加载xml文件
Document document = sr.read(new File("books.xml"));
//通过document对象获取根节点
Element bookstore = document.getRootElement();
//通过element的elementIterator方法获取迭代器
Iterator books = bookstore.elementIterator();
//遍历迭代器
while(books.hasNext()){
Element element = (Element) books.next();
//通过attributes方法获取属性信息
List attr = element.attributes();
//遍历属性信息
for(Attribute a : attr){
System.out.println("属性名"+a.getName()+"--属性值"+a.getValue());
}
//通过elementIterator方法继续获取迭代器获取子节点信息
Iterator it=element.elementIterator();
//遍历迭代器
while(it.hasNext()){
Element element1=(Element) it.next();
System.out.println("节点名:"+element1.getName()+"节点值:"+element1.getStringValue());
}
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
attr = element.attributes();
//遍历属性信息
for(Attribute a : attr){
System.out.println("属性名"+a.getName()+"--属性值"+a.getValue());
}
//通过elementIterator方法继续获取迭代器获取子节点信息
Iterator it=element.elementIterator();
//遍历迭代器
while(it.hasNext()){
Element element1=(Element) it.next();
System.out.println("节点名:"+element1.getName()+"节点值:"+element1.getStringValue());
}
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}