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 |