XPath Contains() ohne Berücksichtigung der Groß-/Kleinschreibung
Frage:
Bei Verwendung von XPath zur Prüfung B. mit dem Ausdruck /html/body//text()[contains(.,'test')], wird bei der Suche die Groß-/Kleinschreibung beachtet. Wie können wir die Suche in XPath für JavaScript so gestalten, dass die Groß-/Kleinschreibung nicht berücksichtigt wird?
Antwort:
Während es in XPath 1.0 keine einfache Möglichkeit gibt, Vergleiche ohne Berücksichtigung der Groß-/Kleinschreibung durchzuführen, Es gibt Techniken, um ein ähnliches Ergebnis zu erzielen:
/html/body//text()[contains(translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'test')]
Bei dieser Methode wird davon ausgegangen, dass das verwendete Alphabet im Voraus bekannt ist. Berücksichtigen Sie daher alle möglicherweise auftretenden Akzentzeichen.
<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>
Dies ermöglicht eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung, unabhängig vom verwendeten Zeichensatz.
Beachten Sie, dass diese Methoden einfache Anführungszeichen in Suchzeichenfolgen möglicherweise nicht korrekt verarbeiten. Für Fälle mit Sonderzeichen können alternative Vorgehensweisen erforderlich sein.
Das obige ist der detaillierte Inhalt vonWie führt man XPath-Contains()-Suchen ohne Berücksichtigung der Groß- und Kleinschreibung durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!