PHP DOM Wrapper adalah pustaka pembungkus DOM sederhana untuk memanipulasi dan melintasi dokumen HTML. Berdasarkan manipulasi jQuery dan metode traversal, sebagian besar meniru perilaku mitra jQuery-nya Show Pengarang
Persyaratan
InstallInstal dengan Komposer
Pemuatan otomatisPustaka ini membutuhkan pemuat otomatis, jika Anda belum menggunakannya, Anda dapat menyertakannya require 'vendor/autoload.php';_ MetodeManipulasiMethodjQuery Equivalent (jika berbeda)after()append()remove()before()prepend()replaceWith()LintasanSetara dengan MethodjQuery (jika berbeda) next()nextAll()nextUntil()prev()prevAll()prevUntil()LainnyaMethodjQuery Setara (jika berbeda)panjang (properti)PenggunaanContoh 1 use DOMWrap\Document; $html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>'; $doc = new Document(); $doc->html($html); $nodes = $doc->find('li'); // Returns '3' var_dump($nodes->count()); // Append as a child node to each <li> $nodes->appendWith('<b>!</b>'); // Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html> var_dump($doc->html()); MetodeManipulasiaddClass
Contoh$doc = (new Document())->html('<p>first paragraph</p><p>second paragraph</p>'); $doc->find('p')->addClass('text-center');_ Hasil <p class="text-center">first paragraph</p><p class="text-center">second paragraph</p> mengikuti _Sisipkan argumen sebagai saudara secara langsung setelah masing-masing node dioperasikan Contoh$doc = (new Document())->html('<ul><li>first</li><li>second</li></ul>'); $doc->find('li')->first()->follow('<li>first-and-a-half</li>'); Hasil <ul> <li>first</li> <li>first-and-a-half</li> <li>second</li> </ul>_ tambahkanDengan _Contohrequire 'vendor/autoload.php';_0 Hasil require 'vendor/autoload.php';_1 appendTorequire 'vendor/autoload.php';_2 Contohrequire 'vendor/autoload.php';_3 Hasil require 'vendor/autoload.php';_1 attrrequire 'vendor/autoload.php';_5 Contoh #1 (Set)require 'vendor/autoload.php';_6 Hasil require 'vendor/autoload.php';_7 Contoh #2 (Dapatkan)require 'vendor/autoload.php';_8 Hasil require 'vendor/autoload.php';_9 mendahuluiuse DOMWrap\Document; $html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>'; $doc = new Document(); $doc->html($html); $nodes = $doc->find('li'); // Returns '3' var_dump($nodes->count()); // Append as a child node to each <li> $nodes->appendWith('<b>!</b>'); // Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html> var_dump($doc->html());0 Sisipkan argumen sebagai saudara tepat sebelum masing-masing node dioperasikan Contohuse DOMWrap\Document; $html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>'; $doc = new Document(); $doc->html($html); $nodes = $doc->find('li'); // Returns '3' var_dump($nodes->count()); // Append as a child node to each <li> $nodes->appendWith('<b>!</b>'); // Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html> var_dump($doc->html());1 Hasil use DOMWrap\Document; $html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>'; $doc = new Document(); $doc->html($html); $nodes = $doc->find('li'); // Returns '3' var_dump($nodes->count()); // Append as a child node to each <li> $nodes->appendWith('<b>!</b>'); // Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html> var_dump($doc->html());2 klonuse DOMWrap\Document; $html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>'; $doc = new Document(); $doc->html($html); $nodes = $doc->find('li'); // Returns '3' var_dump($nodes->count()); // Append as a child node to each <li> $nodes->appendWith('<b>!</b>'); // Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html> var_dump($doc->html());_3 Contohuse DOMWrap\Document; $html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>'; $doc = new Document(); $doc->html($html); $nodes = $doc->find('li'); // Returns '3' var_dump($nodes->count()); // Append as a child node to each <li> $nodes->appendWith('<b>!</b>'); // Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html> var_dump($doc->html());_4 Hasil use DOMWrap\Document; $html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>'; $doc = new Document(); $doc->html($html); $nodes = $doc->find('li'); // Returns '3' var_dump($nodes->count()); // Append as a child node to each <li> $nodes->appendWith('<b>!</b>'); // Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html> var_dump($doc->html());5 menghancurkanuse DOMWrap\Document; $html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>'; $doc = new Document(); $doc->html($html); $nodes = $doc->find('li'); // Returns '3' var_dump($nodes->count()); // Append as a child node to each <li> $nodes->appendWith('<b>!</b>'); // Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html> var_dump($doc->html());6 Contohuse DOMWrap\Document; $html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>'; $doc = new Document(); $doc->html($html); $nodes = $doc->find('li'); // Returns '3' var_dump($nodes->count()); // Append as a child node to each <li> $nodes->appendWith('<b>!</b>'); // Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html> var_dump($doc->html());7 Hasil use DOMWrap\Document; $html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>'; $doc = new Document(); $doc->html($html); $nodes = $doc->find('li'); // Returns '3' var_dump($nodes->count()); // Append as a child node to each <li> $nodes->appendWith('<b>!</b>'); // Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html> var_dump($doc->html());_8 melepaskanuse DOMWrap\Document; $html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>'; $doc = new Document(); $doc->html($html); $nodes = $doc->find('li'); // Returns '3' var_dump($nodes->count()); // Append as a child node to each <li> $nodes->appendWith('<b>!</b>'); // Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html> var_dump($doc->html());_9 Contoh 0Hasil 1kosong 2Contoh _3Hasil _4hasClass 5Contoh 6Hasil _7html 8Contoh #1 (Set) _9Hasil $doc = (new Document())->html('<p>first paragraph</p><p>second paragraph</p>'); $doc->find('p')->addClass('text-center');_0 Contoh #1 (Dapatkan)$doc = (new Document())->html('<p>first paragraph</p><p>second paragraph</p>'); $doc->find('p')->addClass('text-center');_1 Hasil $doc = (new Document())->html('<p>first paragraph</p><p>second paragraph</p>'); $doc->find('p')->addClass('text-center');_2 tambahkanDengan$doc = (new Document())->html('<p>first paragraph</p><p>second paragraph</p>'); $doc->find('p')->addClass('text-center');_3 Contoh$doc = (new Document())->html('<p>first paragraph</p><p>second paragraph</p>'); $doc->find('p')->addClass('text-center');_4 Hasil $doc = (new Document())->html('<p>first paragraph</p><p>second paragraph</p>'); $doc->find('p')->addClass('text-center');_5 prependTo$doc = (new Document())->html('<p>first paragraph</p><p>second paragraph</p>'); $doc->find('p')->addClass('text-center');_6 Contoh$doc = (new Document())->html('<p>first paragraph</p><p>second paragraph</p>'); $doc->find('p')->addClass('text-center');_7 Hasil $doc = (new Document())->html('<p>first paragraph</p><p>second paragraph</p>'); $doc->find('p')->addClass('text-center');_5 hapusAttr$doc = (new Document())->html('<p>first paragraph</p><p>second paragraph</p>'); $doc->find('p')->addClass('text-center');_9 Contoh<p class="text-center">first paragraph</p><p class="text-center">second paragraph</p>0 Hasil _4hapus Kelas<p class="text-center">first paragraph</p><p class="text-center">second paragraph</p>2 Contoh<p class="text-center">first paragraph</p><p class="text-center">second paragraph</p>_3 Hasil <p class="text-center">first paragraph</p><p class="text-center">second paragraph</p>_4 penggantiDengan<p class="text-center">first paragraph</p><p class="text-center">second paragraph</p>5 Contohteks<p class="text-center">first paragraph</p><p class="text-center">second paragraph</p>_6 Contohmembuka<p class="text-center">first paragraph</p><p class="text-center">second paragraph</p>_7 Buka setiap simpul saat ini dengan menghapus induknya, mengganti induk dengan anak-anaknya (mis. e. node saat ini dan saudara-saudaranya) Perhatikan bahwa setiap node dioperasikan secara terpisah, jadi saat Anda memanggil require 'vendor/autoload.php';21 di require 'vendor/autoload.php';22 yang berisi dua saudara kandung, dua orang tua akan dihapus Contoh<p class="text-center">first paragraph</p><p class="text-center">second paragraph</p>_8 Hasil <p class="text-center">first paragraph</p><p class="text-center">second paragraph</p>_9 membungkus _0Bungkus node atau node saat ini dalam struktur yang diberikan Struktur pembungkus dapat disarangkan, tetapi hanya boleh berisi satu node pada setiap level (saudara tambahan apa pun dihapus). Node terluar menggantikan node yang dioperasikan, sedangkan node yang dioperasikan dimasukkan ke dalam node terdalam Jika dipanggil pada require 'vendor/autoload.php';_22, setiap node dalam daftar akan dibungkus secara terpisah. Ketika daftar tersebut berisi banyak node, argumen untuk membungkus() tidak boleh berupa require 'vendor/autoload.php';22 atau require 'vendor/autoload.php';25, karena itu dapat digunakan untuk membungkus node hanya sekali. Sebuah string atau callable mengembalikan string atau unik require 'vendor/autoload.php';22 atau require 'vendor/autoload.php';27 setiap kali dapat digunakan dalam kasus ini Ketika sebuah callable dilewatkan, itu dipanggil sekali untuk setiap node yang dioperasikan, melewati node itu dan indeksnya. Callable harus mengembalikan string, atau require 'vendor/autoload.php';22 atau require 'vendor/autoload.php';25 unik setiap kali dipanggil Perhatikan bahwa ini mengembalikan simpul asli seperti semua metode lain, bukan simpul (baru) yang melilitnya Contoh _1Hasil _2wrapAll _3Seperti , tetapi ketika beroperasi pada banyak node, semuanya akan dibungkus bersama dalam satu instance dari struktur yang diberikan, bukan masing-masing secara individual Perhatikan bahwa struktur pembungkus menggantikan node pertama yang dioperasikan, jadi jika node lain yang dioperasikan bukan saudara dari yang pertama, mereka akan dipindahkan ke dalam dokumen Contoh _4Hasil _5wrapInner _6Seperti , tapi bukannya membungkus node yang sedang dioperasikan, ini membungkus isinya Contoh _7Hasil _8Lintasanmenambahkan _9Tambahkan node tambahan ke set yang ada Contoh$doc = (new Document())->html('<ul><li>first</li><li>second</li></ul>'); $doc->find('li')->first()->follow('<li>first-and-a-half</li>');0 anak-anak$doc = (new Document())->html('<ul><li>first</li><li>second</li></ul>'); $doc->find('li')->first()->follow('<li>first-and-a-half</li>');1 Kembalikan semua anak dari setiap node elemen di set saat ini Contoh$doc = (new Document())->html('<ul><li>first</li><li>second</li></ul>'); $doc->find('li')->first()->follow('<li>first-and-a-half</li>');2 terdekat$doc = (new Document())->html('<ul><li>first</li><li>second</li></ul>'); $doc->find('li')->first()->follow('<li>first-and-a-half</li>');3 Kembalikan elemen pertama yang cocok dengan input yang disediakan dengan melintasi nenek moyang setiap node di set saat ini Contoh$doc = (new Document())->html('<ul><li>first</li><li>second</li></ul>'); $doc->find('li')->first()->follow('<li>first-and-a-half</li>');4 isi$doc = (new Document())->html('<ul><li>first</li><li>second</li></ul>'); $doc->find('li')->first()->follow('<li>first-and-a-half</li>');5 Kembalikan semua anak dari setiap node di set saat ini Contoh$doc = (new Document())->html('<ul><li>first</li><li>second</li></ul>'); $doc->find('li')->first()->follow('<li>first-and-a-half</li>');6 persamaan$doc = (new Document())->html('<ul><li>first</li><li>second</li></ul>'); $doc->find('li')->first()->follow('<li>first-and-a-half</li>');7 Kembalikan node dalam set saat ini pada indeks yang ditentukan Contoh$doc = (new Document())->html('<ul><li>first</li><li>second</li></ul>'); $doc->find('li')->first()->follow('<li>first-and-a-half</li>');_8 Saring$doc = (new Document())->html('<ul><li>first</li><li>second</li></ul>'); $doc->find('li')->first()->follow('<li>first-and-a-half</li>');_9 Kembalikan node di set saat ini yang cocok dengan input Contoh<ul> <li>first</li> <li>first-and-a-half</li> <li>second</li> </ul>_0 Temukan<ul> <li>first</li> <li>first-and-a-half</li> <li>second</li> </ul>_1 Mengembalikan turunan dari set saat ini yang difilter oleh pemilih dan sumbu XPath opsional Contoh<ul> <li>first</li> <li>first-and-a-half</li> <li>second</li> </ul>_2 pertama<ul> <li>first</li> <li>first-and-a-half</li> <li>second</li> </ul>_3 Kembalikan node pertama dari set saat ini Contoh<ul> <li>first</li> <li>first-and-a-half</li> <li>second</li> </ul>_4 memiliki<ul> <li>first</li> <li>first-and-a-half</li> <li>second</li> </ul>_5 Kembalikan node dengan turunan dari set saat ini yang cocok dengan input Contoh<ul> <li>first</li> <li>first-and-a-half</li> <li>second</li> </ul>_6 adalah<ul> <li>first</li> <li>first-and-a-half</li> <li>second</li> </ul>_7 Uji apakah node dari set saat ini cocok dengan input Contoh<ul> <li>first</li> <li>first-and-a-half</li> <li>second</li> </ul>_8 terakhir<ul> <li>first</li> <li>first-and-a-half</li> <li>second</li> </ul>_9 Kembalikan node terakhir dari set saat ini Contoh _0peta _1Terapkan panggilan balik ke node di set saat ini dan kembalikan NodeList baru Contoh _2mengikuti _3Kembalikan sibling segera setelah setiap node elemen di set saat ini Opsional difilter oleh pemilih Contoh _4followingAll _5Kembalikan semua saudara mengikuti setiap node elemen di set saat ini Opsional difilter oleh pemilih Contoh _6berikutSampai _7Kembalikan semua saudara mengikuti setiap node elemen dalam set upto saat ini tetapi tidak termasuk node yang cocok dengan $input Secara opsional difilter berdasarkan masukan Contoh _8bukan _9Kembalikan node elemen dari set saat ini yang tidak cocok dengan input Contohrequire 'vendor/autoload.php';_00 indukrequire 'vendor/autoload.php';_01 Kembalikan induk langsung dari setiap node elemen di set saat ini Opsional difilter oleh pemilih Contohrequire 'vendor/autoload.php';_02 orang tuarequire 'vendor/autoload.php';_03 Kembalikan nenek moyang dari setiap node elemen di set saat ini Opsional difilter oleh pemilih Contohrequire 'vendor/autoload.php';_04 orang tuaSampairequire 'vendor/autoload.php';_05 Mengembalikan leluhur dari setiap node elemen dalam set upto saat ini tetapi tidak termasuk node yang cocok dengan $selector Secara opsional difilter berdasarkan masukan Contohrequire 'vendor/autoload.php';_06 mendahuluirequire 'vendor/autoload.php';_07 Kembalikan sibling tepat sebelum setiap node elemen di set saat ini Opsional difilter oleh pemilih Contohrequire 'vendor/autoload.php';_08 sebelumnyaSemuarequire 'vendor/autoload.php';_09 Kembalikan semua saudara sebelum setiap node elemen di set saat ini Opsional difilter oleh pemilih Contohrequire 'vendor/autoload.php';_10 sebelumnyaSampairequire 'vendor/autoload.php';_11 Kembalikan semua saudara sebelum setiap node elemen dalam set upto saat ini tetapi tidak termasuk node yang cocok dengan $input Secara opsional difilter berdasarkan masukan Contohrequire 'vendor/autoload.php';_12 saudararequire 'vendor/autoload.php';_13 Kembalikan saudara dari setiap node elemen di set saat ini Opsional difilter oleh pemilih Contohrequire 'vendor/autoload.php';_14 mengirisrequire 'vendor/autoload.php';_15 Mengembalikan subset dari set saat ini berdasarkan indeks awal dan akhir Contohrequire 'vendor/autoload.php';_16 Metode Tambahanmenghitungrequire 'vendor/autoload.php';_17 Contohrequire 'vendor/autoload.php';_18 setiaprequire 'vendor/autoload.php';_19 Contohrequire 'vendor/autoload.php';_20 LisensiPHP DOM Wrapper dilisensikan oleh Andrew Scott di bawah BSD 3-Clause License, lihat file LICENSE untuk lebih jelasnya Bisakah Anda menggunakan DOM di PHP?Parser DOM bawaan memungkinkan untuk memproses dokumen XML dalam PHP .
Apa itu DOM dalam PHP?Document Object Model (DOM) adalah API pemrograman untuk dokumen HTML dan XML . Ini mendefinisikan struktur logis dari dokumen dan cara dokumen diakses dan dimanipulasi.
Bagaimana cara membuat objek DOM di PHP?$dom = new DOMDocument('1. 0', 'utf-8'); $element = $dom->createElement('foo', 'me & you'); $dom echo $dom->saveXML();
Bagaimana cara menginstal ekstensi DOM di PHP?Jika versi PHP Anda bukan yang terbaru, maka Anda dapat menambahkan versi di dalamnya. #PHP7. 1 sudo apt instal php7. . 1-xml # PHP 7. 2. sudo apt instal php7 2-xml # PHP 7. 3 sudo apt instal php7 3-xml # PHP 7. 4 sudo apt instal php7 4-xml # PHP 8 sudo apt install php-xml |