Fonction XPath contient() insensible à la casse
Dans XPath, la fonction contient() est sensible à la casse. Cependant, il existe des moyens de contourner cette limitation.
Méthode 1 : Traduire les caractères
Cette méthode implique de traduire les caractères en minuscules ou en majuscules avant de vérifier la sous-chaîne :
/html/body//text()[ contains( translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'test' ) ]
Ceci convertit toutes les lettres majuscules du texte en minuscules avant de vérifier la sous-chaîne « test ».
Méthode 2 : Expression XPath dynamique
À l'aide d'un langage de script tel que JavaScript, vous pouvez créer une expression XPath dynamique qui gère l'insensibilité à la casse :
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");
Ceci remplace les espaces réservés dans l'expression XPath avec les versions majuscules, minuscules et minuscules de la chaîne de recherche.
Considérations supplémentaires
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3