【Xpath】 xpath语法总结
节点选取
表达式 | 描述 | 用法 | 说明 |
---|---|---|---|
nodename | 选取此节点的所有子节点 | div | 选取div下的所有标签 |
// | 从全局节点中选择节点,任意位置均可 | //div | 选取整个HTML页面的所有div标签 |
/ | 选取某个节点下的节点 | //head/title | 选取所有head标签下的titile标签 |
@ | 选取带某个属性的节点 | //div[@id] | 选择带有id属性的div标签 |
. | 当前节点下 | ./span | 选择当前节点下的span标签 |
谓语
表达式 | 用法说明 |
---|---|
//head/meta[k]
| 选择所有head下的第k个meta标签 |
//head/meta[last()] | 选择所有head下的最后一个meta标签 |
//head/meta[position()<3] | 选择所有head下的前两个meta标签 |
//div[@id] | 选择带有id属性的div标签 |
//div[@id='u1'] | 选择所有拥有id=u1的div标签 |
通配符
通配符 | 描述 | 示例 | 结果 |
---|---|---|---|
* | 匹配任意节点 | //div[@id='u1']/* | 选择所有id=’u1‘的div标签下的所有节点 |
@ | 匹配节点中的任意属性 | //meta[@*] | 选择所有拥有任意属性的meta标签 |
选取多个路径
多个xpath路径使用管道符|
连接,效果等价于”或“
例如 "//div | //span"
选取所有的div和span标签
方法
方法名 | 描述 | 示例 | 结果 |
---|---|---|---|
contains() | 判断一个字符串是否包含另一个字符串 | //div[contains(@id,"in")] | 选择所有id包含”in”的div节点 |
string(.) | 提取当前元素及其所有子元素的文本内容 | //div[string(.)="hellow"] | 选择所有文本内容为
”hello“的div节点
|
text() | 提取当前元素的文本内容 | //a[text()="haha"] | 选择所有文本为“haha”的a节点 |
last() | 返回当前节点集中最后一个节点的位置 | //li[last()] | 选择最后一个li节点 |
position() | 返回当前节点在同级节点中的位置 | //li[position()<3] | 选择前两个li节点 |
name() | 返回当前节点的名称 | //div[name()="content"] | 选择 名称为”content"的div节点 |
count() | 返回当前节点集中的节点数量 | //div[count(li)=3] | 选择包含三个li子节点的div节点 |
starts-with() | 判断一个字符串是否以另一个字符串开头 | //a[starts-with(@href,"http")] | 选择href属性以“http”开头的a节点 |
ends-with() | 判断一个字符串是否以另一个字符串结尾 | //a[ends-with(@href,"html")] | 选择href属性以“html”结尾的a节点 |
not() | 对当前表达式取反 | //div[not(@class)] | 选择没有class属性的节点 |
本文来自博客园,作者:'Radio',转载请注明原文链接:https://www.cnblogs.com/primice/p/17379539.html