引入jar包
dom4j-1.6.1.jar
创建xml文件
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book id="1">
<title ID="t1">背影</title>
<price>88</price>
<author>三毛</author>
</book>
<book id="2">
<title>天龙八部</title>
<price>99</price>
<author>金庸</author>
</book>
<book id="3">
<title>鹿鼎记</title>
<price>108</price>
<author>金庸</author>
</book>
</books>
创建java文件
package com.test.xml;
import java.io.InputStream;
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 ReadXml {
public static void main(String[] args) {
// TODO Auto-generated method stub
//1.获得xml文件的流对象(输入流)
InputStream iStream= ReadXml.class.getResourceAsStream("/Books.xml");
//2.创建SAXReader解析器,读取xml文件到dom文档树对象中
SAXReader saxReader=new SAXReader();
try {
Document document= saxReader.read(iStream);
//3.读取dom树中的节点
//1)获得跟节点
Element root= document.getRootElement();
//返回节点的名称
System.out.println(root.getName());
List<Element> bookElements= root.elements();
for(Element book:bookElements)
{
System.out.println(book.getName());
//根据节点的名称找孩子节点
Element title=book.element("title");
System.out.println(title.getText()); //获得节点的内容
//根据属性的名称找到属性
Attribute attribute= book.attribute("id");
//输出属性的值
System.out.println(attribute.getText());
//输出属性的值方式2
System.out.println(book.attributeValue("id"));
}
Element title=document.elementByID("t1");// id属性名是大写
System.out.println(title.getText());
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
运行