ホームページ >ウェブフロントエンド >jsチュートリアル >ContainsIn 関数を使用して大文字と小文字を区別しない XPath 検索を実行するにはどうすればよいですか?

ContainsIn 関数を使用して大文字と小文字を区別しない XPath 検索を実行するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-22 18:51:03275ブラウズ

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

大文字と小文字を区別しない XPath Contains

XPath では、contains() 関数は、次のように、ある文字列に別の文字列が含まれているかどうかを確認します。

/html/body//text()[contains(.,'test')]
これは大文字と小文字が区別されます。つまり、「Test」、「TEST」、または「TesT」とは一致しません。大文字と小文字を区別しないようにするには、次の回避策を試してください。

/html/body//text()[
    contains(
        translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),
        'test'
    )
]
これにより、一致するかどうかを確認する前に、すべての大文字が対応する小文字に置き換えられます。ただし、既知の文字セットに限定されます。

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>
これにより、アルファベットの事前知識がなくても、大文字と小文字を区別せずに検索文字列を照合できます。ただし、どちらのオプションも検索文字列の一重引用符に問題があります。

以上がContainsIn 関数を使用して大文字と小文字を区別しない XPath 検索を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。