Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Memilih Elemen DOM dengan Cekap mengikut Nama Kelas Menggunakan PHP?

Bagaimanakah Saya Boleh Memilih Elemen DOM dengan Cekap mengikut Nama Kelas Menggunakan PHP?

Susan Sarandon
Susan Sarandonasal
2024-12-05 20:27:11230semak imbas

How Can I Efficiently Select DOM Elements by Class Name Using PHP?

Mendapatkan Elemen DOM dengan Nama Kelas Menggunakan PHP DOM

Apabila bekerja dengan PHP DOM, mendapatkan elemen khusus dalam nod berdasarkan kelasnya adalah penting. Mari terokai pendekatan terbaik untuk mencapai ini:

Pemilih XPath

$dom = new DomDocument();<br>$dom->load($filePath);<br>$finder = DomXPath baharu($dom);<br>$nama kelas = "kelas saya";<br>$nodes = $finder->query("//*[mengandungi(@class, '$classname')]");<br>

Pendekatan ini menggunakan XPath untuk memilih semua elemen dengan atribut kelas yang ditentukan.

Zend_Dom_Query CSS Pemilih

Jika anda lebih suka sintaks pemilih CSS, Zend_Dom_Query menawarkan penyelesaian yang mudah:

$finder = new Zend_Dom_Query($html);<br>$classname = 'my-class ';<br>$nodes = $finder->query("*[class~='$classname']");<br>

Kemas kini: Versi XPath bagi *[@class~=' my-class'] CSS Selector

Menghuraikan pemilih CSS menggunakan Zend_Dom_Query mendedahkan persamaan Ekspresi XPath:

$nodes = $finder->query("[contains(concat(' ', normalize-space(@class), ' '), ' $classname ')] ");<br>

Dengan menggunakan XPath ini secara langsung, anda boleh membuat pertanyaan untuk elemen yang mengandungi kelas yang ditentukan tanpa menggunakan Zend_Dom_Query.

Apabila memilih elemen mengikut kelas, perlu diperhatikan bahawa jika jenis elemen diketahui, anda boleh menggantikan * dengan nama teg yang sepadan, mengecilkan carian dan meningkatkan kecekapan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memilih Elemen DOM dengan Cekap mengikut Nama Kelas Menggunakan PHP?. 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