Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar php json kepada format xml

Bagaimana untuk menukar php json kepada format xml

PHPz
PHPzasal
2023-03-31 09:06:27863semak imbas

PHP ialah bahasa skrip yang digunakan secara meluas dalam pembangunan web. Antaranya, format JSON dan XML digunakan secara meluas dalam aplikasi Web. Menukar format JSON kepada format XML dalam PHP juga merupakan kemahiran yang sangat berguna. Artikel ini akan memperkenalkan cara menukar JSON kepada XML dalam PHP.

1. Pengenalan kepada format JSON dan XML

JSON ialah singkatan Notasi Objek JavaScript Ia adalah format pertukaran data ringan yang biasa digunakan untuk menghantar data melalui rangkaian. JSON ialah struktur data yang terdiri daripada pasangan nilai kunci, yang mudah dibaca dan ditulis. Ia menyokong berbilang bahasa pengaturcaraan untuk penghuraian dan penjanaan Ia mudah dan intuitif, mempunyai jumlah data yang kecil, dan mudah dihuraikan .

XML ialah singkatan dari Extensible Markup Language, bahasa markup yang serupa dengan HTML yang boleh digunakan untuk menyimpan dan menghantar data. Data XML mengandungi teg permulaan, teg akhir dan data di antaranya. XML ialah format boleh diperluas yang menyokong teg yang ditentukan pengguna dan oleh itu lebih fleksibel, tetapi kecekapan penghuraiannya agak rendah dan jumlah data adalah besar.

2. Kaedah menukar JSON kepada XML

Dalam PHP, untuk menukar JSON kepada XML, anda boleh menggunakan fungsi SimpleXMLElement dan json_decode. SimpleXMLElement ialah kelas terbina dalam PHP yang digunakan untuk mencipta dan memanipulasi objek dokumen XML Fungsi json_decode digunakan untuk menyahkod data format JSON ke dalam tatasusunan atau objek PHP.

Berikut ialah kod sampel:

$json_str = '{
      "name":"John Smith",
      "age":32,
      "email":"johnsmith@example.com"
    }';

    $json_obj = json_decode($json_str); // 将json字符串解析为对象
    $xml_obj = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><data></data>'); // 创建XML对象

    function add_node($obj, $parent)
    {
        foreach ($obj as $key => $value) {
            $node = $parent->addChild(is_numeric($key)? "item":"$key"); // 创建XML元素,并设置元素名
            if(is_object($value) || is_array($value)) { // 判断值类型,如果是数组或对象类型,递归创建XML元素
                add_node($value, $node);
            } else {
                $node->addChild("value",$value); // 创建值元素
            }
        }
    }

    add_node($json_obj, $xml_obj); // 将json节点转化为XML元素

    $xml_str = $xml_obj->asXML(); // 将XML对象转化为XML字符串

    echo $xml_str;

Dalam kod, rentetan $json_str pertama kali ditakrifkan, yang mengandungi objek data JSON. Kemudian gunakan fungsi json_decode untuk menukar $json_str menjadi objek JSON $json_obj. Seterusnya, cipta objek XML $xml_obj melalui fungsi SimpleXMLElement baharu.

Untuk menukar objek JSON kepada XML, fungsi add_node di bawah menggunakan kaedah rekursif untuk menukar setiap nod nilai JSON kepada nod XML dan menambahkannya pada objek XML. Apabila menemui nod objek atau jenis tatasusunan, fungsi akan memanggil dirinya secara rekursif, menukar nod itu kepada elemen XML dan menambahkannya pada elemen XML yang sepadan dengan objek $xml_obj.

Akhir sekali, dapatkan format rentetan XML objek XML yang dicipta melalui kaedah asXML, cetaknya dan tukarkannya menjadi output rentetan.

3. Ringkasan

Dengan kod di atas, kami boleh menukar data JSON dalam PHP kepada data XML dengan mudah. Perlu diingat bahawa semasa proses penukaran, jenis data perlu ditentukan untuk memilih elemen yang berbeza untuk penciptaan, dan penukaran nod dilakukan secara rekursif supaya jenis data seperti tatasusunan dan objek boleh dilalui.

Atas ialah kandungan terperinci Bagaimana untuk menukar php json kepada format xml. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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