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!