不区分大小写的 XPath Contains
在 XPath 中, contains() 函数检查一个字符串是否包含另一个字符串,如下所示:
/html/body//text()[contains(.,'test')]
区分大小写,这意味着它不会匹配“Test”、“TEST”或“测试。”要启用不区分大小写,请尝试以下解决方法:
/html/body//text()[ contains( translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'test' ) ]
这会在检查匹配之前将每个大写字母替换为其对应的小写字母。但是,它仅限于已知的字符集。
另一种方法利用 JavaScript:
function xpathPrepare(xpath, searchString) {
return xpath
.replace("$u", searchString.toUpperCase())
.replace("$l", searchString.toLowerCase())
.replace("$s", searchString.toLowerCase());
}
xp = xpathPrepare("//text()[contains(translate(., '$u', '$l'), '$s')]", "Test");
这允许不区分大小写地匹配任何搜索字符串,无需事先了解字母表。然而,这两个选项都与搜索字符串中的单引号有关。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3