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

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

Barbara Streisand
Barbara Streisandasal
2024-12-05 13:48:15542semak imbas

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

Mendapatkan semula Elemen DOM mengikut Nama Kelas

Apabila menavigasi dokumen HTML menggunakan PHP DOM, mengakses elemen berdasarkan nama kelasnya boleh menjadi penting. Soalan ini menangani pendekatan paling berkesan untuk mendapatkan sub-elemen dalam nod DOM yang mempunyai atribut kelas tertentu.

Pendekatan Pemilih Xpath:

Pemilih Xpath boleh dengan cekap cari elemen yang sepadan dengan nama kelas yang diberikan. Contohnya, untuk mendapatkan semula elemen dengan kelas "kelas saya", gunakan Xpath berikut:

$finder = new DomXPath($dom);
$classname = "my-class";
$nodes = $finder->query("//*[contains(@class, '$classname')]");

Pendekatan Pemilih CSS:

Jika anda berhasrat untuk lakukan pemilihan elemen DOM yang meluas dengan pemilih kompleks, pertimbangkan untuk menggunakan Zend_Dom_Query. Ia menyokong sintaks pemilih CSS, menjadikannya serupa dengan pustaka jQuery.

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

Kemas kini: Xpath Setara dengan *[@class~='my-class'] CSS Selector

Bagi mereka yang ingin tahu tentang kerja dalaman Zend_Dom_Query, pemilih CSS di atas menyusun kepada yang berikut Xpath:

[contains(concat(' ', normalize-space(@class), ' '), ' my-class ')]

Ungkapan Xpath ini memastikan bahawa atribut kelas mengandungi nama kelas yang ditentukan, walaupun dikelilingi oleh ruang putih.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Elemen DOM dengan Cekap dengan 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