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!