常见语法:
stu.xml文件:
<?xml version="1.0"?>
<students>
<student id='001'>
<name>zhangsan</name>
<age>20</age>
</student>
<student id='002'>
<name>李四</name>
<age>23</age>
</student>
<student id="003">
<name>wangwu</name>
<age>21</age>
</student>
<student id="004">
<name>zhaoliu</name>
<age>26</age>
</student>
<haha>hello,world</haha>
</students>
类XPathDemo:
package day03;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class XPathDemo {
/**
* @param args
* @throws DocumentException
*/
public static void main(String[] args) throws DocumentException {
// TODO Auto-generated method stub
SAXReader reader=new SAXReader();
File file=new File("stu.xml");
Document document=reader.read(file);
Element rootElement=document.getRootElement();
/*String xpath="students/student";
List list=document.selectNodes(xpath);*/
//与下面等价
String xpath="/students/student";
//String xpath="//student"; 所有的student
List list=rootElement.selectNodes(xpath);
System.out.println(list.size()+"....");
getStudentById(document,"002");
}
public static void getStudentById(Document document, String id){
String xpath="//student[@id="+id+"]";
Element stuElement=(Element)document.selectSingleNode(xpath);
System.out.println(stuElement.elementText("name"));
}
}
注意: java.lang.NoClassDefFoundError这个错误就应该想到是不是包没引全,这里要引入jaxven.jar