XPath查询 以一段XML文档为实例
<?xml version="1.0" encoding="utf-8"?> <users> <user username="zhangsan" password="123"/> <user username="lisi" password="456"/> <user username="wangwu" hobby="football"/> <user username="zhaoliu" age="25"/> </users> XPath路径表达式 表达式描述nodename选取此节点的所有子节点/从根节点中选取//从文档中的任意节点位置选取.选取当前节点…选取当前节点的父节点@选取属性 实例 路径表达式描述users选取users元素的所有子节点/users选取根元素 users/users/user选取属于users 的子元素中的所有 user 元素//user选取所有 user 子元素,无论它们在何位置,都选取/users//user选取属于users 的子元素中的所有 user 元素,无论它们在何位置//@username选取名为username的所有属性 带有谓语的实例 路径表达式描述/users/user选取属于 users 子元素的第一个 user 元素/users/user[last()]选取属于 users 子元素的最后一个 user 元素/users/user[last()-1]选取属于 users 子元素的倒数第二个 user 元素/users/user[position() < 3]选取属于 users 子元素的最前面两个 user 元素//user[@username]选取所有拥有名为 username 的属性的 user 元素//user[@username=‘zhangsan’]选取所有拥有名为 username 且其值为"zhangsan" 的属性的 user 元素/users/user[age>20]选取 users 元素的所有拥有名为age 且其值大于20 的属性的 user 元素//user[@username]选取所有拥有名为 username 的属性的 user 元素。 通配符 通配符描述*匹配任何元素节点@*匹配任何属性节点node()匹配任何类型的节点 带通配符的实例 路径表达式描述/users/*选取 users 元素下的所有子元素。//*选取文档中的所有元素。//username[@*]选取所有带有属性的 username 元素。