„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie erreicht man mit der Funktion „contains()“ eine Suche ohne Berücksichtigung der Groß- und Kleinschreibung in XPath?

Wie erreicht man mit der Funktion „contains()“ eine Suche ohne Berücksichtigung der Groß- und Kleinschreibung in XPath?

Veröffentlicht am 07.11.2024
Durchsuche:424

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

XPath-Funktion „Contains()“ ohne Berücksichtigung der Groß-/Kleinschreibung

In XPath wird bei der Funktion „Contains()“ die Groß-/Kleinschreibung beachtet. Es gibt jedoch Möglichkeiten, diese Einschränkung zu umgehen.

Methode 1: Zeichen übersetzen

Bei dieser Methode werden Zeichen in Klein- oder Großbuchstaben übersetzt, bevor nach der Teilzeichenfolge gesucht wird:

/html/body//text()[
  contains(
    translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),
    'test'
  )
]

Dadurch werden alle Großbuchstaben im Text in Kleinbuchstaben umgewandelt, bevor nach der Teilzeichenfolge „test“ gesucht wird.

Methode 2: Dynamischer XPath-Ausdruck

Mithilfe einer Skriptsprache wie JavaScript können Sie einen dynamischen XPath-Ausdruck erstellen, der die Groß-/Kleinschreibung berücksichtigt:

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");

Dies ersetzt Platzhalter im XPath-Ausdruck mit Großbuchstaben, Kleinbuchstaben und Kleinbuchstabenversionen der Suchzeichenfolge.

Zusätzliche Überlegungen

  • Beide Methoden gehen davon aus, dass das Alphabet bekannt ist.
  • Wenn Elementtext einfache Anführungszeichen enthalten kann, maskieren Sie diese, um XPath-Syntaxfehler zu vermeiden.
  • Wenn Sie Methode 2 verwenden, behandeln Sie maskierte Anführungszeichen in der Suchzeichenfolge.
Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729589295 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3