在XPath中,contains函数是一种特殊的用法,用于判断一个节点的属性值或文本内容是否包含某个字符串。contains函数的语法如下:
contains(string, substring)
其中,string是要被检查的字符串,substring是要查找的子字符串。如果string包含substring,函数返回true,否则返回false。
以下是一些XPath的特殊用法的举例:
- starts-with():选择以指定字符串开头的节点。例如,
//p[starts-with(@class, 'highlight')]
可以选择所有class属性以"highlight"开头的p元素。 - ends-with():选择以指定字符串结尾的节点。例如,
//a[ends-with(@href, '.pdf')]
可以选择所有href属性以".pdf"结尾的a元素。 - substring():选择包含指定字符串的节点。例如,
//h1[contains(substring(text()), 'Hello')]
可以选择所有h1元素中包含"Hello"字符串的节点。 - matches():选择满足指定正则表达式的节点。例如,
//input[matches(@value, '^[A-Z]{3}$')]
可以选择所有value属性值为三个大写字母的input元素。 - normalize-space():选择去除空格后与指定字符串相等的节点。例如,
//p[normalize-space(.) = 'Hello World']
可以选择所有文本内容去除空格后等于"Hello World"的p元素。 - translate():选择将指定字符转换为其他字符后与指定字符串相等的节点。例如,
//span[translate(text(), 'aeiou', '12345') = 'h2ll4 w4rld']
可以选择所有文本内容将元音字母替换为数字后等于"h2ll4 w4rld"的span元素。
案例
//ul[contains(@class, 'commonList_dot_Listnews')] ###这个 XPath 表达式会匹配所有 <ul> 元素,其 class 属性中包含字符串 commonList_dot_Listnews
这些特殊用法可以在XPath的各种情况中使用,如选择节点、比较属性值等。使用这些特殊用法可以更灵活地定位和筛选节点。