Fungsi ini mirip dengan DOMDocument. getElementsByTagName tetapi mencari elemen dengan id tertentu
Agar fungsi ini berfungsi, Anda perlu menyetel beberapa atribut ID dengan DOMElement. setIdAttribute atau DTD yang mendefinisikan atribut menjadi tipe ID. Dalam kasus selanjutnya, Anda perlu memvalidasi dokumen Anda dengan DOMDocument. memvalidasi atau sebelum menggunakan fungsi ini
Dapatkan akses penuh ke Belajar PHP, MySQL, JavaScript, dan CSS, Edisi ke-2 dan 60K+ judul lainnya, dengan uji coba gratis O'Reilly selama 10 hari
Ada juga acara online langsung, konten interaktif, materi persiapan sertifikasi, dan banyak lagi
• getElementsByTagName()getElementById dan getElementsByTagName adalah metode kelas PHP DOMDocument. Metode ini dapat digunakan dalam PHP untuk mendapatkan elemen dari dokumen HTML
- Sebelum menggunakan metode kelas DOMDocument PHP, Anda harus memuat dokumen HTML ke dalam objek DOMDocument, seperti pada kode ini
'; $dochtml->loadHTML($strhtml); - $dochtml berisi objek dengan struktur pohon dari semua elemen dalam dokumen HTML. Setelah objek ini dibuat, Anda dapat menggunakan metode DOMDocument untuk mengakses item HTML (seperti yang Anda lihat pada contoh di bawah)
- Diindikasikan memiliki HTML yang terbentuk dengan baik, selain itu dapat menghasilkan kesalahan E_WARNING saat menemukan markup yang buruk
Untuk menelusuri elemen objek PHP, gunakan instruksi foreach() loop
Fungsi ini berguna saat Anda ingin membaca konten, atau nilai atribut elemen HTML dengan ID tertentu
- Gunakan properti nodeValue untuk mendapatkan konten elemen yang dikembalikan oleh getElementById()
- Gunakan properti tagName (atau nodeName) untuk mendapatkan nama tag
Contoh, dapatkan nama tag dan konten elemen dengan ID yang ditentukan
PHP getElementById, getElementsByTagName//coursesweb.net
'; // create the DOMDocument object, and load HTML from a string $dochtml = new DOMDocument(); $dochtml->loadHTML($strhtml); // get the element with id="dv1" $elm = $dochtml->getElementById('dv1'); // get the tag name, and content $tag = $elm->tagName; $cnt = $elm->nodeValue; echo $tag. ' - '. $cnt; // div - //coursesweb.net ?> _Fungsi getElementsByTagName('tag') mengembalikan objek yang berisi semua elemen dengan nama tag lokal tertentu. Argumen khusus '*' cocok dengan semua tag
Fungsi ini berguna ketika Anda ingin membaca konten, atau atribut dari beberapa elemen HTML yang memiliki kesamaan
- Gunakan getAttribute('attribute') untuk mendapatkan nilai atribut tertentu
Contoh, dapatkan, dan keluarkan ID dan konten dari setiap DIV
PHP getElementById, getElementsByTagName//coursesweb.net
Free PHP Course
marplo.net
'; } ?>
- Anda juga dapat menggunakan /memuat hanya sebagian dari dokumen HTML
Contoh 2. Muat string yang hanya berisi bagian BODY, simpan ke dalam Array konten setiap paragraf dengan class="cls".
Free PHP Course
URL: //coursesweb.net
Paragraph without class.
marplo.net
PHP getElementById and getElementsByTagName
'; // create the DOMDocument object, and load HTML from a string $dochtml = new DOMDocument(); $dochtml->loadHTML($strhtml); // gets alltags $prgs = $dochtml->getElementsByTagName('p'); $pcls = array(); // traverse the object with all paragraphs foreach($prgs as $prg) { // if the current paragraph has class="cls", adds it in the $pcls array if($prg->getAttribute('class') == 'cls') { $pcls[] = $prg->nodeValue; } } // outputs the $pcls array print_r($pcls); // Array ([0] => Free PHP Course [1] => URL: //coursesweb.net [2] => PHP getElementById and getElementsByTagName ) ?>
To set a hidden id that can be used by $dom->getElementById() apply setAttribute('id', true) as in the following example_
$createItemNode = function ($data) use ($dom) {
$node = $dom->createElement("Item");
$node->setAttribute('id', $data->id);
$node->setAttribute('hed', $data->hed);
$node->setAttribute('run_time', $data->run_time);
$node->setAttribute('date', $data->date);
// Internally mark the id as 'xml:id' for getElementById to work. Adding xml:id manually to the tag will cause loadXML to throw an error DOMDocument: xml:id is not a NCName in Entity
$node->setIdAttribute('id', true);_
return $node;
};
With $node->setIdAttribute('id', true), $dom->getElementById($id) will work_
When you do $dom->saveXML(), the final doc will not contain any xml:id attribute._