XPATH语法

XPath使用语法

选取节点
表达式 描述 示例 结果
nodename 选取此节点的所有子节点 html 选取html下所有的子节点
/ 如果是在最前面,代表从根节点选取。否则选择某节点下的某个节点 /html 选取整个html节点
// 从全局节点中选择节点,随便在哪个位置 //div 选取所有的div节点
@ 选取某个节点中的属性 //div[@class] 选取所有div节点下的class属性
谓语

谓语用来查找某个特定的节点或者包含某个制定的值的节点,被嵌在方括号里。

在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果:

路径表达式 描述
//body/div[1] 获取body节点下的第一个div(下标从1开始)
//body/div[last()] 获取body节点下最后一个div元素
//body/div[position()<3] 获取body节点下前两个div元素
//div[@class] 获取div节点下拥有class属性的元素
//div[@price=10] 获取div节点下属性为price=10的元素
//div[contains(@class,”fl”)] 模糊匹配,选取div节点下包含fl的class元素
通配符
通配符 描述 示例 结果
* 匹配任意节点 //body/* body下的额所有节点
@* 匹配节点中的任何属性 //div[@*] div下的所有属性节点
选取多个路径

通过在路径表达式中使用”|”运算符,可以选取若干个路径

1
//dd[@class="job_bt"] | //dd[@class="job-advant-age"]
运算符
运算符 描述 实例 返回值
| 计算两个节点集 //book | //cd 返回所有拥有 book 和 cd 元素的节点集
+ 加法 6 + 4 10
- 减法 6 - 4 2
* 乘法 6 * 4 24
div 除法 8 div 4 2
= 等于 price=9.80 如果 price 是 9.80,则返回 true,否则 false。
!= 不等于 price!=9.80 如果 price 是 9.90,则返回 true,否则 false。
< 小于 price<9.80 如果 price 是 9.00,则返回 true,否则 false。
<= 小于或等于 price<=9.80 如果 price 是 9.00,则返回 true,否则 false。
> 大于 price>9.80 如果 price 是 9.90,则返回 true,否则 false。
>= 大于或等于 price>=9.80 如果 price 是 9.90,则返回 true,否则 false。
or price=9.80 or price=9.70 如果 price 是 9.80,则返回 true,否则 false。
and price>9.00 and price<9.90 如果 price 是 9.80,则返回 true,否则 false。
mod 计算除法的余数 5 mod 2 1