Heim > Web-Frontend > js-Tutorial > Hauptteil

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

Barbara Streisand
Freigeben: 2024-10-23 01:17:30
Original
607 Leute haben es durchsucht

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

XPaths case-insensitive contains()

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 Variationen einer Zeichenfolge, bei denen die Groß-/Kleinschreibung beachtet wird, als auch bei Variationen ohne Berücksichtigung der Groß-/Kleinschreibung abzugleichen, verwenden Sie die Funktion Translate():

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

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

2. JavaScript-unterstützte dynamische XPath-Generierung

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

<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>
Nach dem Login kopieren

Dies Die Methode verarbeitet Suchzeichenfolgen mit beliebigen Zeichen, einschließlich einfacher Anführungszeichen.

Achtung: Diese Techniken funktionieren möglicherweise nicht optimal, wenn komplexe/große Zeichenfolgenoperationen beteiligt sind. Wenn möglich, ziehen Sie 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.

Das obige ist der detaillierte Inhalt vonWie erreicht man in XPath 1.0 die Funktion „Contains()', bei der die Groß- und Kleinschreibung nicht beachtet wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!