Heim >Web-Frontend >js-Tutorial >Kann die Groß-/Kleinschreibung bei XPath-Abfragen mithilfe von „contains()' ignoriert werden?

Kann die Groß-/Kleinschreibung bei XPath-Abfragen mithilfe von „contains()' ignoriert werden?

Susan Sarandon
Susan SarandonOriginal
2024-10-22 20:45:35952Durchsuche

Can XPath Queries Become Case-Insensitive Using contains()?

XPath ohne Berücksichtigung der Groß-/Kleinschreibung contains()Funktion

Frage:

Kann bei XPath-Abfragen die Groß-/Kleinschreibung nicht berücksichtigt werden, wenn die Funktion contains() zum Suchen nach Textknoten verwendet wird?

Antwort:

Ja , Groß-/Kleinschreibung berücksichtigende XPath-Abfragen sind mit den folgenden Techniken möglich:

Mit translate() und contains():

Diese Methode beinhaltet die Übersetzung des Knotenwerts und der Suchzeichenfolge in Kleinbuchstaben, bevor die Funktion contains() verwendet wird:

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

Verwenden der Host-Sprache zum Erstellen eines dynamischen XPath-Ausdrucks:

Erstellen Sie nach Möglichkeit einen dynamischen XPath-Ausdruck mit einer Hostsprache wie JavaScript:

<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>

Diese Methode übersetzt nur die erforderlichen Zeichen in der Suchzeichenfolge, sodass sie für alle geeignet ist Suchbegriff.

Überlegungen:

  • Beide Methoden schlagen fehl, wenn Suchzeichenfolgen einfache Anführungszeichen enthalten.
  • Die Verwendung spezieller Elemente wie Das Markieren von relevantem Text kann XPath-Abfragen vereinfachen.

Das obige ist der detaillierte Inhalt vonKann die Groß-/Kleinschreibung bei XPath-Abfragen mithilfe von „contains()' ignoriert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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