Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana untuk menukar tatasusunan kepada format XML dalam thinkphp

Bagaimana untuk menukar tatasusunan kepada format XML dalam thinkphp

PHPz
PHPzasal
2023-04-07 09:01:06788semak imbas

Semasa proses pembangunan, kami sering menghadapi keperluan untuk menukar tatasusunan ke dalam format XML Pada masa ini, kami boleh menggunakan perpustakaan kelas XML rangka kerja ThinkPHP untuk mencapai ini.

Pertama, kita perlu mencipta tatasusunan:

$data = array(
    'name' => '张三',
    'age' => '25',
    'sex' => '男'
);

Kemudian, kita boleh menukarnya kepada format XML dengan kod berikut:

$xml = new \DOMDocument('1.0', 'utf-8');
$root = $xml->createElement('data');
$xml->appendChild($root);
array_to_xml($data, $root);

function array_to_xml($data, $root) {
    foreach($data as $key => $value) {
        if(is_array($value)) {
            $node = $root->appendChild($xml->createElement($key));
            array_to_xml($value, $node);
        } else {
            $node = $root->appendChild($xml->createElement($key, $value));
        }
    }
}

Di sini kita gunakan dan kaedah DOMDocument mula-mula mencipta nod akar createElement(), dan gelung melalui data dalam tatasusunan untuk mencipta nod dan elemen, dan menambah elemen pada nod. <data>

Jika nilai dalam tatasusunan masih tatasusunan, ia perlu memanggil dirinya secara rekursif untuk mencipta nod dan elemen yang sepadan.

Akhir sekali, anda boleh menggunakan kod berikut untuk mengeluarkan rentetan dalam format XML:

echo $xml->saveXML();
Dengan cara ini, anda boleh menukar tatasusunan kepada format XML dengan mudah. Sudah tentu, jika anda perlu menukar semula rentetan berformat XML kepada tatasusunan, anda juga boleh menggunakan kaedah

yang disediakan oleh rangka kerja ThinkPHP. Xml::toArray()

Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan kepada format XML dalam thinkphp. 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