Heim >Web-Frontend >js-Tutorial >Wie führe ich eine XPath-Suche ohne Berücksichtigung der Groß-/Kleinschreibung mit der Funktion „ContainsIn' durch?

Wie führe ich eine XPath-Suche ohne Berücksichtigung der Groß-/Kleinschreibung mit der Funktion „ContainsIn' durch?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-22 18:51:03275Durchsuche

How to Perform Case-Insensitive XPath Searching with ContainsIn Function?

XPath Contains ohne Berücksichtigung der Groß-/Kleinschreibung

In XPath prüft die Funktion „contains()“, ob eine Zeichenfolge eine andere enthält, etwa so:

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

Hier muss die Groß-/Kleinschreibung beachtet werden, was bedeutet, dass es nicht mit „Test“, „TEST“ oder „TesT“ übereinstimmt. Um die Berücksichtigung der Groß-/Kleinschreibung zu aktivieren, versuchen Sie diese Problemumgehung:

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

Dadurch wird jeder Großbuchstabe durch sein Gegenstück in Kleinbuchstaben ersetzt, bevor nach Übereinstimmungen gesucht wird. Es ist jedoch auf bekannte Zeichensätze beschränkt.

Eine alternative Methode nutzt 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>

Dies ermöglicht den Abgleich jeder Suchzeichenfolge ohne Berücksichtigung der Groß-/Kleinschreibung ohne Vorkenntnisse des Alphabets. Allerdings haben beide Optionen Probleme mit einfachen Anführungszeichen in Suchzeichenfolgen.

Das obige ist der detaillierte Inhalt vonWie führe ich eine XPath-Suche ohne Berücksichtigung der Groß-/Kleinschreibung mit der Funktion „ContainsIn' durch?. 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