Fonction XPath contain() insensible à la casse
Dans XPath, la fonction contain() est sensible à la casse. Cependant, il existe des moyens de contourner cette limitation.
Méthode 1 : Traduire les caractères
Cette méthode consiste à 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' ) ]
Cela 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 :
<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>
Cela remplace les espaces réservés dans l'expression XPath par des versions majuscules, minuscules et minuscules de la chaîne de recherche.
Considérations supplémentaires
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!