引入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());//输出属性的值方式2System.out.println(book.attributeValue("id"));}Element title=document.elementByID("t1");// id属性名是大写System.out.println(title.getText());} catch (DocumentException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
运行