Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Melakukan Carian XPath Case-Insensitive dengan Fungsi ContainsIn?

Bagaimana untuk Melakukan Carian XPath Case-Insensitive dengan Fungsi ContainsIn?

Patricia Arquette
Patricia Arquetteasal
2024-10-22 18:51:03198semak imbas

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

Mengandungi XPath yang tidak peka huruf besar-kecil

Dalam XPath, fungsi contains() menyemak sama ada satu rentetan mengandungi rentetan lain, seperti ini:

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

Ini sensitif huruf besar-besaran, bermakna ia tidak sepadan dengan "Ujian," "UJIAN" atau "UjianT." Untuk mendayakan ketakpekaan huruf besar, cuba penyelesaian ini:

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

Ini menggantikan setiap huruf besar dengan huruf kecilnya sebelum menyemak padanan. Walau bagaimanapun, ia terhad kepada set aksara yang diketahui.

Kaedah alternatif memanfaatkan 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>

Ini membolehkan pemadanan tidak sensitif huruf besar bagi mana-mana rentetan carian tanpa pengetahuan abjad terlebih dahulu. Walau bagaimanapun, kedua-dua pilihan bergelut dengan petikan tunggal dalam rentetan carian.

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Carian XPath Case-Insensitive dengan Fungsi ContainsIn?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn