这是针对XPath 1.0的。如果您的环境支持XPath 2.0,请参见此处。
是。可能,但是不漂亮。
/html/body//text()[
contains(
translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),
'test'
)
]
如果可以的话,请通过其他方式标记您感兴趣的文本部分,例如将其包含在具有特定类别的内。
如果这不可能,您可以让JavaScript帮助您构建适当的XPath表达式:
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");
// -> "//text()[contains(translate(., 'TEST', 'test'), 'test')]"