【Xpath】 xpath语法总结

2023-06-28,

节点选取

表达式 描述 用法 说明
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属性的节点

【Xpath】 xpath语法总结的相关教程结束。

《【Xpath】 xpath语法总结.doc》

下载本文的Word格式文档,以方便收藏与打印。