大文字と小文字を区別しない XPath contains() 関数
XPath では、contains() 関数は大文字と小文字を区別します。ただし、この制限を回避する方法があります。
方法 1: 文字を変換する
この方法では、部分文字列をチェックする前に文字を小文字または大文字に変換します。
/html/body//text()[ contains( translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'test' ) ]
これは、部分文字列「test」をチェックする前に、テキスト内のすべての大文字を小文字に変換します。
方法 2: 動的 XPath 式
JavaScript などのスクリプト言語を使用すると、大文字と小文字を区別しない動的な XPath 式を構築できます。
<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>
これにより、XPath 式内のプレースホルダーが検索文字列の大文字、小文字、および小文字バージョンに置き換えられます。
追加の考慮事項
以上がcontains() 関数を使用して XPath で大文字と小文字を区別しない検索を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。