Menghuraikan Fail XML Besar dengan Mudah dalam PHP
Menghuraikan fail XML yang besar menimbulkan cabaran kerana kekangan memori. Artikel ini meneroka penyelesaian untuk mengendalikan fail XML besar-besaran dalam PHP dengan cekap.
Menggunakan API XML Penstriman
PHP menyediakan dua API XML penstriman: ekspatriat dan pembaca XML. API ini memproses kandungan XML dalam cara penstriman, mengelakkan overhed memori yang dikaitkan dengan memuatkan keseluruhan pepohon.
Expat ialah API lama dan memerlukan pengendalian proses penghuraian yang lebih manual. XMLreader, sebaliknya, menawarkan pendekatan yang lebih berorientasikan objek dan mengendalikan banyak tugas penghuraian biasa.
Contoh Penghurai untuk Fail XML DMOZ Besar
Untuk menunjukkan penggunaan daripada penstriman penghurai XML, mari kita pertimbangkan kandungan/struktur fail XML DMOZ. Kelas PHP berikut menggunakan XMLreader untuk menghuraikan fail besar ini dengan cekap:
class SimpleDMOZParser { private $stack = array(); private $file; private $parser; private $currentId; private $current; public function __construct($file) { $this->file = $file; $this->parser = xml_parser_create("UTF-8"); xml_set_object($this->parser, $this); xml_set_element_handler($this->parser, "startTag", "endTag"); } public function startTag($parser, $name, $attribs) { // ... } public function endTag($parser, $name) { // ... } public function parse() { // ... } } $parser = new SimpleDMOZParser("content.rdf.u8"); $parser->parse();
Kelas ini membaca cebisan fail XML secara berulang dan memproses kandungan apabila elemen ditemui. Ia menjejaki konteks semasa dan mengendalikan tindakan khusus seperti mengekstrak data yang berkaitan daripada elemen "LINK".
Atas ialah kandungan terperinci Bagaimanakah PHP Boleh Menghurai Fail XML Besar Dengan Cekap Tanpa Isu Memori?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!