<?xml version="1.0" encoding="utf-8"?>
<AAA>
<BBB id = "b1">
<CCC>
<KKK>K1</KKK>
</CCC>
<CCC>
<KKK>K2</KKK>
</CCC>
</BBB>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
</AAA>
package com.dom4jxpath.test;
import java.io.File;
import java.util.List;
import org.dom4j.*;
import org.dom4j.io.*;
public class dom4jxpath {
//dom4j 配合 xpath 案例
public static void main(String[] args) throws Exception {
//1.得到SAXRead 解析器
SAXReader saxReader = new SAXReader();
//2.指定去解析哪个文件
Document document = saxReader.read(new File("src/com/dom4jxpath/test/test.xml"));
//3.得到根元素(这里已经没有必要再得到根元素了 直接使用document即可)
//Element element = document.getRootElement();
//4.使用xpath 随便取
//List e = document.selectNodes("/AAA/BBB[last()]");//返回多个元素document.selectSingleNode(arg0)返回一个元素
//System.out.println(e.size()+((Element)e.get(0)).getText());
//取出属性
//List e = document.selectNodes("//@id");
//System.out.println(((Attribute)e.get(1)).getText());
//跨层读取案例
List e = document.selectNodes("/AAA/BBB[1]/CCC[2]/KKK");
System.out.println(((Element)e.get(0)).getText());
}
}
说明:使用 xpath 还需要引入jar包dom4j-1.6.1.jar jaxen-1.1-beta-6.jar。具体的操作可以参照xpath的帮助文档