Maison >interface Web >js tutoriel >Les requêtes XPath peuvent-elles devenir insensibles à la casse en utilisant contain() ?
XPath insensible à la casse contient() Fonction
Question :
Les requêtes XPath peuvent-elles être rendues insensibles à la casse lors de l'utilisation de la fonction contains() pour rechercher des nœuds de texte ?
Réponse :
Oui , les requêtes XPath insensibles à la casse sont possibles en utilisant les techniques suivantes :
Utilisation de translate() et contains():
Cette méthode implique de traduire la valeur du nœud et la chaîne de recherche en minuscules avant d'utiliser la fonction contains() :
/html/body//text()[ contains( translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'test' ) ]
Utilisation du langage hôte pour créer une expression XPath dynamique :
Si possible, créez une expression XPath dynamique à l'aide d'un langage hôte tel que JavaScript :
<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>
Cette méthode traduit uniquement les caractères nécessaires dans la chaîne de recherche, ce qui la rend adaptée à tout terme de recherche.
Considérations :
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!