Bolehkah Pertanyaan XPath Menjadi Tidak Peka Huruf Menggunakan mengandungi()?

Susan Sarandon
Lepaskan: 2024-10-22 20:45:35
asal
849 orang telah melayarinya

Can XPath Queries Become Case-Insensitive Using contains()?

Case-Insensitive XPath mengandungi() Fungsi

Soalan:

Bolehkah pertanyaan XPath dibuat tidak sensitif huruf besar apabila menggunakan fungsi contains() untuk mencari nod teks?

Jawapan:

Ya , pertanyaan XPath tidak sensitif huruf besar dan kecil boleh dilakukan menggunakan teknik berikut:

Menggunakan terjemah() dan mengandungi():

Kaedah ini melibatkan menterjemah nilai nod dan rentetan carian kepada huruf kecil sebelum menggunakan fungsi mengandungi():

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

Menggunakan Bahasa Hos untuk Membina Ekspresi XPath Dinamik:

Jika boleh, buat ungkapan XPath dinamik menggunakan bahasa hos seperti 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>
Salin selepas log masuk

Kaedah ini hanya menterjemah aksara yang diperlukan dalam rentetan carian, menjadikannya sesuai untuk mana-mana istilah carian.

Pertimbangan:

  • Kedua-dua kaedah gagal apabila rentetan carian mengandungi petikan tunggal.
  • Menggunakan elemen khas seperti untuk menandakan teks yang berkaitan boleh memudahkan pertanyaan XPath.

Atas ialah kandungan terperinci Bolehkah Pertanyaan XPath Menjadi Tidak Peka Huruf Menggunakan mengandungi()?. 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!