Dalam proses pengaturcaraan dengan PHP, fail XML sering digunakan, tetapi tidak semua pembangun biasa dengan peraturan sintaks fail XML, jadi fail XML perlu ditukar kepada tatasusunan untuk diproses. Berikut ialah cara untuk menukar fail XML kepada tatasusunan menggunakan PHP.
1. Gunakan fungsi sambungan SimpleXML
Fungsi sambungan SimpleXML ialah sambungan penghuraian XML yang disertakan dengan PHP Ia boleh menghuraikan fail XML menjadi objek dan kemudian menukar objek kepada tatasusunan .
Langkah-langkah untuk menggunakan fungsi sambungan SimpleXML adalah seperti berikut:
$xml = simplexml_load_file('example.xml');
$array = json_decode(json_encode($xml), TRUE);
Antaranya, fungsi json_decode() ialah fungsi yang. menukar rentetan format JSON kepada tatasusunan PHP. Fungsi json_encode() mensiri tatasusunan PHP ke dalam rentetan format JSON. Di sini kami menyerikan objek SimpleXML ke dalam rentetan format JSON dan kemudian menghuraikannya ke dalam tatasusunan PHP.
2. Gunakan kelas DOMDocument
DOMDocument ialah sambungan penghuraian DOM yang disertakan dengan PHP Ia boleh menghuraikan fail XML ke dalam struktur pokok, dan kemudian mencari nod yang kami perlukan. berurusan dengan.
Langkah-langkah untuk menggunakan kelas DOMDocument adalah seperti berikut:
$dom = new DOMDocument(); $dom->load('example.xml');
$root = $dom->documentElement;
Kod sampel adalah seperti berikut:
$array = array(); if ($root->hasChildNodes()) { $children = $root->childNodes; for ($i = 0; $i < $children->length; $i++) { $child = $children->item($i); $array[$child->nodeName] = $child->nodeValue; } }
Dalam kod di atas, kita mula-mula mencipta tatasusunan kosong, dan kemudian lelaran melalui setiap nod anak di bawah nod akar. Jika nod anak tidak kosong, maka kami menyimpan nama dan nilainya dalam tatasusunan.
3. Gunakan kelas Penghurai XML
Penghurai XML ialah penghurai XML yang disertakan dengan PHP Ia boleh menghuraikan fail XML ke dalam aliran acara, dan kemudian kita boleh menggunakannya mengikut kepada jenis acara untuk memproses fail XML ini.
Langkah-langkah untuk menggunakan XML Parser adalah seperti berikut:
$xml_parser = xml_parser_create();
function startElement($parser, $element_name, $element_attrs) { //处理元素开始事件 } function endElement($parser, $element_name) { //处理元素结束事件 } function charData($parser, $data) { //处理文本内容事件 } xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "charData");
Dalam kod di atas, kami mentakrifkan tiga fungsi pemprosesan: startElement() digunakan untuk memproses acara permulaan elemen, endElement() digunakan untuk memproses elemen end event , charData() digunakan untuk mengendalikan acara kandungan teks. Kemudian kami mendaftarkan ketiga-tiga fungsi pemprosesan ini ke dalam penghurai XML.
$fp = fopen('example.xml', 'r'); while ($data = fread($fp, 4096)) { xml_parse($xml_parser, $data, feof($fp)); }
Dalam kod di atas, kami mula-mula membaca fail XML ke dalam memori dalam mod binari. , dan kemudian secara beransur-ansur memindahkan data Bongkahan dihantar ke penghurai XML untuk penghuraian.
Ringkasan:
Di atas adalah tiga kaedah untuk menukar fail XML kepada tatasusunan Pembangun boleh memilih kaedah yang sesuai mengikut keperluan sebenar. Dalam proses menggunakan fungsi sambungan SimpleXML dan kelas DOMDocument, PHP akan menduduki sejumlah besar memori dan sumber CPU, manakala menggunakan kelas XML Parser boleh menjimatkan memori dan sumber CPU, tetapi memerlukan penulisan lebih banyak fungsi pemprosesan.
Atas ialah kandungan terperinci Bagaimana untuk menukar xml ke dalam array dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!