Mencari Elemen mengikut Kelas CSS Menggunakan XPath
Dalam pembangunan web, selalunya perlu untuk mencari elemen tertentu pada halaman web. Satu kaedah biasa untuk melakukan ini adalah melalui XPath, bahasa ekspresi yang direka khusus untuk menavigasi dokumen XML dan halaman web HTML. Satu tugas khusus yang kerap timbul ialah mendapatkan semula elemen mengikut kelas CSS mereka.
Masalah:
Pertimbangkan halaman web yang mengandungi elemen div dengan kelas CSS "Ujian." Bagaimanakah kita boleh mencari elemen ini dengan cekap menggunakan ungkapan XPath?
Penyelesaian:
Untuk mencari elemen menggunakan kelas CSSnya, kita boleh menggunakan pemilih XPath di bawah:
//*[contains(@class, 'Test')]
Pemilih ini mencari sebarang elemen pada halaman yang mengandungi kelas "Ujian" dalam atribut "kelas"nya. Ia adalah ungkapan umum yang boleh memadankan mana-mana elemen dengan kelas yang ditentukan.
Walau bagaimanapun, jika kita tahu bahawa elemen khusus yang dimaksudkan ialah div, kita boleh mengoptimumkan lagi carian:
//div[contains(@class, 'Test')]
Pertimbangan Lanjutan:
Walaupun pemilih di atas sepadan dengan kebanyakan kes, terdapat beberapa senario yang mungkin tidak tepat sepenuhnya. Sebagai contoh, mereka mungkin secara tidak sengaja memadankan elemen dengan atribut kelas yang mengandungi "Ujian" sebagai subrentetan separa. Untuk ketepatan yang lebih tinggi, pertimbangkan versi yang dioptimumkan berikut:
//div[contains(concat(' ', @class, ' '), ' Test ')]
Versi ini memastikan bahawa rentetan padanan yang tepat ditemui dalam atribut "kelas" dengan menambah ruang di sekeliling nama kelas.
//div[contains(concat(' ', normalize-space(@class), ' '), ' Test ')]
Versi ini menghapuskan lagi mana-mana aksara ruang kosong luar di sekeliling rentetan "Ujian" dengan menggunakan ruang normalize fungsi.
Terutamanya, nama elemen pilihan hendaklah digantikan dengan asterisk (*) dalam semua pemilih yang disediakan untuk mencari secara khusus untuk jenis elemen tersebut. Ini membantu mengecilkan carian dan meningkatkan kecekapan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Elemen dengan Cekap oleh Kelas CSS Menggunakan XPath?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!