"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment réaliser une recherche insensible à la casse dans XPath à l'aide de la fonction contain() ?

Comment réaliser une recherche insensible à la casse dans XPath à l'aide de la fonction contain() ?

Publié le 2024-11-07
Parcourir:234

How to Achieve Case-Insensitive Searching in XPath Using the contains() Function?

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

  • Les deux méthodes supposent que l'alphabet est connu.
  • Si le texte de l'élément peut contenir des guillemets simples, échappez-les pour éviter les erreurs de syntaxe XPath.
  • Si vous utilisez la méthode 2, gérez les guillemets échappés dans la chaîne de recherche.
Déclaration de sortie Réimprimé dans cet article: 1729589295 S'il y a une violation, veuillez contacter [email protected] pour supprimer
Dernier tutoriel Plus>

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