首先新建一个xml文件
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
Dom4j查找XML;需要导入Dom4j的jar包:
package cn.itcast.dom4j;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class DomDemo {
public static void main(String[] args) throws DocumentException {
// TODO Auto-generated method stub
//获取documnet
Document doc = new SAXReader().read("D:\\MyEclipse10\\day04\\xml\\bookstore.xml");
//获取根节点
Element root=doc.getRootElement();
//获取其他节点
List<Element>list= root.elements();
for(Element book:list)
{
//获取book的 category
String value=book.attributeValue("category");
System.out.println(value);//结果为COOKING CHILDREN WEB
//获取title的文本
String text=book.elementText("title");
System.out.println(text);//结果EverydayItalian Harry Potter Learning XML
}
}
}
利用X-Path解析:导入jar包(dom4j.jar和jaxen-1.1-beta-6.jar):
package cn.itcast.xpath;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class XpathDemo {
public static void main(String[] args) throws DocumentException {
// TODO Auto-generated method stub
//获取根节点
Document doc=new SAXReader().read("D:\\MyEclipse10\\day04\\xml\\bookstore.xml");
//获取year
List<Element> list=doc.selectNodes("//year");
for(Element year:list )
{
System.out.println(year.getText());//结果为2005,2005,2003
}
//获取价格大与30的书名
Element title=(Element) doc.selectSingleNode("//book[price>30]/title");
Element title1=(Element) doc.selectSingleNode("//book[@category='COOKING']/title");
System.out.println(title.getText());//结果为Learning XML
System.out.println(title1.getText());//结果为Everyday Italian
}
}