JavaWeb课程系列

5xpath

5.1简介

XPath 是在 XML 文档中查找信息的语言

XPath 是通过元素和属性进行查找

XPath简化了Dom4j查找节点的过程

使用XPath必须导入jaxen-1.1-beta-6.jar

否则出现

NoClassDefFoundError: org/jaxen/JaxenException

5.2语法

XPath语法示例

/students/student

从根元素开始逐层找,以”/”开头

//name

直接获取所有name元素对象,以“//”开头

//student/*

获取所有student元素的所有子元素对象

//student[1]或//student[last()]

获取所有student元素的第一个或最后一个

//student[@id]

获取所有带id属性的student元素对象

//student[@id=‘002']

获取id等于002的student元素对象

5.3使用

1)导包,导包,导包。谢谢。jaxen-1.1-beta-6.jar

2)dom4j怎么做就怎么做。只是在查找元素的时候可以使用xpath了

3)获取所有符合条件的节点

  • selectNodes(String xpathExpression) 返回List集合

 获取符合条件的单个节点

  • selectSingleNode(String xpathExpression) 返回一个Node对象。

代码:

public void testXpath() throws Exception{

SAXReader reader = new SAXReader();

Document document = reader.read("stu.xml");

//我们使用selectNodes 或 selectSingleNode

//查询id为2的学生

Element stuEle = (Element) document.selectSingleNode("/students/student[@id='2']");

//获取学生的信息

String idStr = stuEle.attributeValue("id");

String name = stuEle.elementText("name");

String ageStr = stuEle.elementText("age");

String gender = stuEle.elementText("gender");

String address = stuEle.elementText("address");

//封装为一个学生对象

Student stu = new Student(Integer.parseInt(idStr), name, Integer.parseInt(ageStr), gender, address);

System.out.println(stu);

}