不区分大小写的 XPath contains() 函数
问题:
使用 contains() 函数搜索文本节点时,XPath 查询是否可以不区分大小写?
答案:
是,可以使用以下技术进行不区分大小写的 XPath 查询:
使用 translate() 和 contains():
此方法涉及在使用 contains() 函数之前将节点值和搜索字符串转换为小写:
/html/body//text()[ contains( translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'test' ) ]
使用主机语言构建动态 XPath 表达式:
如果可能,请使用 JavaScript 等宿主语言创建动态 XPath 表达式:
<code class="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");</code>
此方法仅翻译搜索字符串中的必要字符,使其适合任何搜索词。
注意事项:
以上是XPath 查询可以使用 contains() 变得不区分大小写吗?的详细内容。更多信息请关注PHP中文网其他相关文章!