Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mencapai Carian Tidak Peka Huruf dalam XPath Menggunakan Fungsi contains()?

Bagaimana untuk Mencapai Carian Tidak Peka Huruf dalam XPath Menggunakan Fungsi contains()?

Barbara Streisand
Barbara Streisandasal
2024-10-22 19:19:31214semak imbas

How to Achieve Case-Insensitive Searching in XPath Using the contains() Function?

Kes-Tidak Peka XPath mengandungi() Fungsi

Dalam XPath, fungsi contains() adalah peka huruf besar-kecil. Walau bagaimanapun, terdapat cara untuk mengatasi had ini.

Kaedah 1: Terjemah Aksara

Kaedah ini melibatkan menterjemah aksara kepada huruf kecil atau huruf besar sebelum menyemak subrentetan:

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

Ini menukar semua huruf besar dalam teks kepada huruf kecil sebelum menyemak subrentetan "ujian."

Kaedah 2: Ungkapan XPath Dinamik

Menggunakan bahasa skrip seperti JavaScript, anda boleh membina ungkapan XPath dinamik yang mengendalikan ketidakpekaan huruf besar/kecil:

<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 menggantikan ruang letak dalam ungkapan XPath dengan versi rentetan carian huruf besar, huruf kecil dan huruf kecil.

Pertimbangan Tambahan

  • Kedua-dua kaedah mengandaikan abjad diketahui.
  • Jika teks elemen boleh mengandungi petikan tunggal, elakkannya untuk menghalang sintaks XPath ralat.
  • Jika menggunakan Kaedah 2, kendalikan petikan yang terlepas dalam rentetan carian.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Carian Tidak Peka Huruf dalam XPath Menggunakan Fungsi contains()?. 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