Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk menukar xml ke dalam array dalam php

Bagaimana untuk menukar xml ke dalam array dalam php

PHPz
Lepaskan: 2023-04-24 11:41:30
asal
2721 orang telah melayarinya

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:

  1. Gunakan fungsi simplexml_load_file() untuk memuatkan fail XML Kod sampel adalah seperti berikut:
$xml = simplexml_load_file('example.xml');
Salin selepas log masuk
  1. Tukar objek SimpleXML kepada tatasusunan Kod sampel adalah seperti berikut:
$array = json_decode(json_encode($xml), TRUE);
Salin selepas log masuk

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.

  1. Proses tatasusunan yang ditukar dan laksanakan logik perniagaan.

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:

  1. Gunakan kaedah load() untuk memuatkan fail XML Kod sampel adalah seperti berikut:
$dom = new DOMDocument();
$dom->load('example.xml');
Salin selepas log masuk
  1. Dapatkan nod punca Kod sampel adalah seperti berikut:
$root = $dom->documentElement;
Salin selepas log masuk
  1. Lintas setiap nod anak di bawah nod akar dan tukar nama dan nilai nod ke dalam tatasusunan.

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;
    }
}
Salin selepas log masuk

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.

  1. Proses tatasusunan yang ditukar dan laksanakan logik perniagaan.

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:

  1. Buat objek penghurai XML Kod sampel adalah seperti berikut:
$xml_parser = xml_parser_create();
Salin selepas log masuk
    .
  1. Tetapkan fungsi pengendalian acara, kod sampel adalah seperti berikut:
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");
Salin selepas log masuk

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.

  1. Menghuraikan fail XML Kod sampel adalah seperti berikut:
$fp = fopen('example.xml', 'r');
while ($data = fread($fp, 4096)) {
    xml_parse($xml_parser, $data, feof($fp));
}
Salin selepas log masuk

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.

  1. Proses tatasusunan yang ditukar dan laksanakan logik perniagaan.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan