Xpath
使用方式
使用//获取整个页面中的元素,然后写标签名,然后在写谓词进行提取。比如:
选取节点
表达式 |
描述 |
示例 |
结果 |
nodename |
选取此节点的所有子节点 |
bookstroe |
选取bookstore下的所有子节点 |
/ |
如果是在最前面,代表从根节点选取。 否则选择某节点下的某个节点 |
/bookstore |
选取根元素下所有的bookstore节点 |
// |
从全局节点中选择节点,随便在哪个位置 |
//book |
从全局节点中找到所有的book节点 |
@ |
选取某个节点的属性 |
//book[@price] |
选择所有拥有price属性的book节点 |
. |
当前节点 |
./a |
选取当前节点下的a标签 |
谓语
谓语用来查找某个特定的节点或者包含某个指定的值的节点,被嵌在方括号中。
路径表达式 |
描述 |
/bookstore/book[1] |
选取bookstore下的第一个子元素 |
/bookstore/book[last()] |
选取bookstore下最后一个book元素 |
bookstore/book[position()<3] |
选取bookstore下前面两个子元素 |
//book[@price] |
选取拥有price属性的book元素 |
//book[@price=10] |
选取所有属性price等于10的book元素 |
通配符
通配符 |
描述 |
示例 |
结果 |
* |
匹配任意节点 |
/bookstore/* |
选取bookstore下的所有子元素 |
@* |
匹配节点中的任何属性 |
//book[@*] |
选取所有带有属性的book元素 |
选取多个路径
通过在路径表达式中使用|
运算符,可以选取若干个路径。示例如下:
1 2
| //bookstore/book | //book/title
|
运算符
可以使用and
,or
,=
,>
等,太多就不全列了,用到再说
1
| //dl[@class='job_detail' and @id='job_detail']
|
注意
/
和//
的区别:/
代表只获取直接子节点。//
获取子孙节点。//
用的多。
contains
:有时候某个属性中包含了多个值,可以使用contains
函数:
1
| //div[contains(@class,'job_tail')]
|
- 谓词的下标是从1开始的,不是0开始