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

Barbara Streisand
Lepaskan: 2024-10-22 19:19:31
asal
106 orang telah melayarinya

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'
  )
]
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!