„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 in XPath 1.0 die Funktion „Contains()“, bei der die Groß- und Kleinschreibung nicht beachtet wird?

Wie erreicht man in XPath 1.0 die Funktion „Contains()“, bei der die Groß- und Kleinschreibung nicht beachtet wird?

Veröffentlicht am 20.11.2024
Durchsuche:357

How to Achieve Case-Insensitive contains() Functionality in XPath 1.0?

XPaths Groß-/Kleinschreibung enthält()

In XSLT oder anderen DOM-durchquerenden Anwendungen kann die Durchführung von XPath-Abfragen mit Groß- und Kleinschreibung von Zeichenfolgenvergleichen durchgeführt werden einschränkend sein. Es ist jedoch möglich, in XPath 1.0 die Funktion „Contains()“ ohne Berücksichtigung der Groß-/Kleinschreibung zu erreichen.

1. Übersetzungsbasierte Methode (XPath 1.0)

Um sowohl case-sensitive als auch case-insensitive Variationen einer Zeichenfolge abzugleichen, verwenden Sie die Funktion Translate():

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

Diese Methode übersetzt effektiv alle Großbuchstaben in Kleinbuchstaben und ermöglicht so Vergleiche ohne Berücksichtigung der Groß- und Kleinschreibung. Es erfordert jedoch Kenntnisse über den erwarteten Zeichensatz.

2. JavaScript-unterstützte dynamische XPath-Generierung

Wenn die Manipulation des XPath-Ausdrucks möglich ist, können Sie JavaScript verwenden, um die Suchzeichenfolge dynamisch durch ihre Groß- und Kleinbuchstabenvarianten zu ersetzen:

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

Diese Methode behandelt Suchzeichenfolgen mit beliebigen Zeichen, einschließlich einfacher Anführungszeichen.

Achtung: Diese Techniken funktionieren möglicherweise nicht optimal, wenn komplexe/große Zeichenfolgenoperationen beteiligt sind. Ziehen Sie nach Möglichkeit andere Lösungen in Betracht, z. B. das Speichern von Zeichenfolgen mit bekannten Zeichensätzen oder die Einführung von XPath 2.0, das nativ Zeichenfolgenvergleiche ohne Berücksichtigung der Groß- und Kleinschreibung unterstützt.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729588936 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