Bagaimana Cara parse dan memproses HTML / XML dalam PHP?

Bagaimana Cara parse dan memproses HTML / XML dalam PHP?

iis

August 10, 2019

Ekstensi XML Asli

Saya lebih suka menggunakan salah satu ekstensi XML asli karena mereka dibundel dengan PHP, biasanya lebih cepat dari semua lib pihak ke-3 dan memberi saya semua kontrol yang saya butuhkan atas markup.

php

DOM

Ekstensi DOM memungkinkan Anda untuk beroperasi pada dokumen XML melalui DOM API dengan PHP 5. Ini adalah implementasi dari W3C’s Document Object Model Core Level 3, antarmuka platform dan bahasa-netral yang memungkinkan program dan skrip untuk mengakses dan memperbarui secara dinamis konten, struktur dan gaya dokumen.

DOM mampu mem-parsing dan memodifikasi dunia nyata (rusak) HTML dan dapat melakukan permintaan XPath. Itu didasarkan pada libxml.

Butuh beberapa waktu untuk menjadi produktif dengan DOM, tetapi waktu itu sangat berharga untuk IMO. Karena DOM adalah antarmuka bahasa-agnostik, Anda akan menemukan implementasi dalam banyak bahasa, jadi jika Anda perlu mengubah bahasa pemrograman Anda, kemungkinan besar Anda sudah tahu cara menggunakan DOM API bahasa itu.

Contoh penggunaan dasar dapat ditemukan dalam Meraih atribut href dari elemen A dan gambaran umum konseptual umum dapat ditemukan di DOMDocument di php

Cara menggunakan ekstensi DOM telah dibahas secara luas di StackOverflow, jadi jika Anda memilih untuk menggunakannya, Anda dapat yakin bahwa sebagian besar masalah yang Anda hadapi dapat diselesaikan dengan mencari / menelusuri Stack Overflow.

XMLReader

Ekstensi XMLReader adalah parser tarikan XML. Pembaca bertindak sebagai kursor maju pada aliran dokumen dan berhenti di setiap node di jalan.

XMLReader, seperti DOM, didasarkan pada libxml. Saya tidak tahu bagaimana cara memicu Modul Parser HTML, jadi kemungkinan menggunakan XMLReader untuk mem-parsing HTML yang rusak mungkin kurang kuat daripada menggunakan DOM di mana Anda dapat secara eksplisit mengatakannya untuk menggunakan Modul Parser HTML libxml.

Contoh penggunaan dasar dapat ditemukan untuk mendapatkan semua nilai dari tag h1 menggunakan php

XML Parser

Ekstensi ini memungkinkan Anda membuat parser XML dan kemudian mendefinisikan penangan untuk berbagai acara XML. Setiap parser XML juga memiliki beberapa parameter yang dapat Anda sesuaikan.

Pustaka XML Parser juga didasarkan pada libxml, dan mengimplementasikan parser dorong XML gaya SAX. Ini mungkin merupakan pilihan yang lebih baik untuk manajemen memori daripada DOM atau SimpleXML, tetapi akan lebih sulit untuk bekerja dengan daripada parser tarik yang diterapkan oleh XMLReader.

SimpleXml

Ekstensi SimpleXML menyediakan toolset yang sangat sederhana dan mudah digunakan untuk mengkonversi XML ke objek yang dapat diproses dengan pemilih properti normal dan array iterator.

SimpleXML adalah opsi ketika Anda tahu HTML itu valid XHTML. Jika Anda perlu mem-parsing HTML yang rusak, bahkan tidak mempertimbangkan SimpleXml karena itu akan tersedak.

Contoh penggunaan dasar dapat ditemukan di Program sederhana untuk simpul CRUD dan nilai simpul dari file xml dan ada banyak contoh tambahan dalam Manual PHP.

Perpustakaan Pihak Ketiga (berbasis libxml)

Jika Anda lebih suka menggunakan lib pihak ke-3, saya sarankan menggunakan lib yang benar-benar menggunakan DOM / libxml di bawahnya alih-alih parsing string.

FluentDom – Repo

FluentDOM menyediakan antarmuka XML fasih seperti jQuery untuk DOMDocument di PHP. Selektor ditulis dalam XPath atau CSS (menggunakan pengonversi CSS ke XPath). Versi saat ini memperluas DOM yang mengimplementasikan antarmuka standar dan menambahkan fitur dari DOM Living Standard. FluentDOM dapat memuat format seperti JSON, CSV, JsonML, RabbitFish dan lainnya. Dapat diinstal melalui Komposer.

HtmlPageDom

Wa72 \ HtmlPageDom` adalah pustaka PHP untuk memudahkan manipulasi dokumen HTML menggunakan Ini membutuhkan DomCrawler dari komponen Symfony2 untuk melintasi pohon DOM dan memperluasnya dengan menambahkan metode untuk memanipulasi pohon DOM dokumen HTML.

phpQuery (tidak diperbarui selama bertahun-tahun)

phpQuery adalah API Document Object Model (DOM) API sisi-server, rantaiable, didorong selektor berdasarkan jQuery JavaScript Library yang ditulis dalam PHP5 dan menyediakan tambahan Command Line Interface (CLI).

Lihat juga: https://github.com/electrolinux/phpquery

Zend_Dom

Zend_Dom menyediakan alat untuk bekerja dengan dokumen dan struktur DOM. Saat ini, kami menawarkan Zend_Dom_Query, yang menyediakan antarmuka terpadu untuk menanyakan dokumen DOM menggunakan penyeleksi XPath dan CSS.

QueryPath

QueryPath adalah pustaka PHP untuk memanipulasi XML dan HTML. Ini dirancang untuk bekerja tidak hanya dengan file lokal, tetapi juga dengan layanan web dan sumber daya database. Ini mengimplementasikan banyak antarmuka jQuery (termasuk pemilih CSS-style), tetapi sangat disetel untuk penggunaan sisi server. Dapat diinstal melalui Komposer.

fDOMDokumen

fDOMDocument memperluas DOM standar untuk menggunakan pengecualian pada semua kesempatan kesalahan alih-alih peringatan atau pemberitahuan PHP. Mereka juga menambahkan berbagai metode khusus dan cara pintas untuk kenyamanan dan untuk menyederhanakan penggunaan DOM.

sabre / xml

saber / xml adalah pustaka yang membungkus dan memperluas kelas XMLReader dan XMLWriter untuk membuat sistem pemetaan “xml to object / array” sederhana dan pola desain. Menulis dan membaca XML adalah single-pass dan karenanya dapat cepat dan membutuhkan memori rendah pada file xml besar.