Maison > interface Web > js tutoriel > le corps du texte

Comment effectuer des recherches XPath Contains() insensibles à la casse ?

DDD
Libérer: 2024-10-22 20:33:39
original
743 Les gens l'ont consulté

How to Perform Case-Insensitive XPath Contains() Searches?

Xpath insensible à la casse contient()

Question :

Lors de l'utilisation de XPath pour vérifier l'existence d'une chaîne dans un nœud de texte, comme avec l'expression /html/body//text()[contains(.,'test')], la recherche est sensible à la casse. Comment pouvons-nous rendre la recherche insensible à la casse dans XPath pour JavaScript ?

Réponse :

Bien qu'il n'existe aucun moyen simple d'effectuer des comparaisons insensibles à la casse dans XPath 1.0, il existe des techniques pour obtenir un résultat similaire :

  1. Traduire la casse des caractères : Utilisez la fonction traduire() pour convertir le nœud de texte et la chaîne de recherche en une seule casse, soit en majuscule ou inférieur. Par exemple :
/html/body//text()[contains(translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'test')]
Copier après la connexion

Cette méthode suppose que l'alphabet utilisé est connu à l'avance, incluez donc tous les caractères accentués qui pourraient être rencontrés.

  1. XPath dynamique Expression : Créez une expression XPath dynamique à l'aide d'un langage hôte tel que JavaScript. Remplacez la chaîne de recherche par ses formes supérieure, inférieure et originale dans la clause contain() :
<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");
// -> "//text()[contains(translate(., 'TEST', 'test'), 'test')]"</code>
Copier après la connexion

Cela permet des recherches insensibles à la casse, quel que soit le jeu de caractères utilisé.

Notez que ces méthodes peuvent ne pas gérer correctement les guillemets simples dans les chaînes de recherche. Pour les cas comportant des caractères spéciaux, des approches alternatives peuvent être nécessaires.

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!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!