JavaWeb课程系列
5.xpath
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); } |