Oui. Possible, mais pas beau.
/html/body//text()[
contains(
translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),
'test'
)
]
Si vous le pouvez, marque les portions de texte qui vous intéressent avec d'autres moyens, comme les enfermant dans un <span>
qui a une certaine classe.
Si ce n'est pas possible, vous pouvez avoir JavaScript vous aider avec la construction d'une appropriée de l'expression 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')]"
(Astuce chapeau à @KirillPolishchuk réponse - bien sûr, vous avez seulement besoin de traduire ces personnages, vous êtes réellement à la recherche pour l')