Mencari Elemen mengikut Kelas CSS Menggunakan XPath
Dalam mengikis web, selalunya perlu untuk mencari elemen HTML berdasarkan kelas CSS mereka. XPath, alat yang berkuasa untuk menavigasi dokumen XML dan HTML, menyediakan cara untuk mencapainya.
Pertimbangkan halaman HTML dengan elemen div yang mempunyai kelas bernama "Ujian." Pertanyaan XPath berikut boleh digunakan untuk mencari elemen ini:
//*[contains(@class, 'Test')]
Pertanyaan ini memilih semua elemen yang mengandungi kelas "Ujian", tidak kira di mana ia muncul dalam pepohon dokumen.
Untuk mengoptimumkan prestasi, anda boleh mengecilkan carian kepada jenis elemen tertentu, seperti div. Sebagai contoh, pertanyaan berikut akan mengehadkan carian kepada div yang mengandungi kelas "Ujian":
//div[contains(@class, 'Test')]
Walau bagaimanapun, jika anda mempunyai elemen dengan kelas seperti "Nilai Ujian" atau "Ujian baharu," pertanyaan di atas akan sepadan mereka juga. Untuk memastikan padanan yang lebih tepat, anda boleh menggunakan rentetan bercantum yang mengandungi ruang sebelum dan selepas kelas "Ujian", seperti yang dicadangkan oleh @Tomalak:
//div[contains(concat(' ', @class, ' '), ' Test ')]
Pertanyaan ini hanya akan sepadan dengan div yang mempunyai perkataan "Uji" sebagai nilai kelas yang berasingan.
Untuk menghapuskan sebarang isu ruang kosong, anda juga boleh menormalkan ruang menggunakan fungsi normalize-space, seperti yang dicadangkan oleh @Terry:
//div[contains(concat(' ', normalize-space(@class), ' '), ' Test ')]
Akhir sekali, adalah penting untuk menggantikan asterisk (*) dalam pertanyaan ini dengan nama elemen sebenar yang anda mahu padankan, melainkan anda ingin mencari semua elemen dalam dokumen. Ini akan meningkatkan kecekapan pertanyaan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Elemen HTML dengan Cekap oleh Kelas CSS Menggunakan XPath?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!