Xpath contains 函数特殊用法总结

1,686 阅读1分钟

不了解 Xpath的contains函数的可以看下w3c官方文档 Xpath函数

fn:contains(string1,string2)如果 string1 包含 string2,则返回 true,否则返回 false。例子:contains('XML','XM')结果:true

可以看出 contains函数表示意思是,第一个参数字符串包含第二个参数时,返回true

实际用起来可能会有点差异(由于结合了路径表达式和属性)

下面列出了最有用的路径表达式:

表达式描述
nodename选取此节点的所有子节点。
/从根节点选取。
//从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
.选取当前节点。
..选取当前节点的父节点。
@选取属性。

比如我们会有时这么用

tree.xpath('//div[contains(@class,"abc")]')  #选取class属性包含字符串"abc"的节点

还有,在需要判断节点是否包含某个子节点时候,可以这么用

tree.xpath('//div[contains(/,a)]') #判断div是否满足包含子节点a这个条件,是则返回满足条件的div节点

当需要多个函数条件时,可以这么用

tree.xpath('//div[contains(@class,"abc") and contains(@class,"cbf")]') #返回class属性同时包含 "abc""cbf" 字符串的div节点
 
tree.xpath('//div[contains(@class,"abc") or contains(@class,"cbf")]') #返回class属性包含 "abc""cbf" 字符串的div节点

以上,就是关于xpath的contains函数一个总结,第二种用法不太常用,特此记录下,希望能帮助到大家~