Mengonversi objek ke xml php

Dengan menggunakan paket XML Serializer, Anda dapat menggunakan kode berikut untuk melakukan konversi, seperti yang dilaporkan dalam jawaban ini di Stack Overflow

function json_to_xml($json) {
  $serializer = new XML_Serializer();
  $obj = json_decode($json);

  if ($serializer->serialize($obj)) {
    return $serializer->getSerializedData();
  }
  else {
    return NULL;
  }
}

Atau, Anda dapat menggunakan kode berikut dalam jawaban ini untuk pertanyaan yang sama

require_once 'XML/Serializer.php';

$data = json_decode($json, true)

// An array of serializer options.
$serializer_options = array (
  'addDecl' => TRUE,
  'encoding' => 'ISO-8859-1',
  'indent' => '  ',
  'rootName' => 'json',
  'mode' => 'simplexml'
); 

$Serializer = &new XML_Serializer($serializer_options);
$status = $Serializer->serialize($data);

if (PEAR::isError($status)) {
  die($status->getMessage());
}

echo '
';
echo htmlspecialchars($Serializer->getSerializedData());
echo '
_';

Apakah menurut Anda alat ini berguna? . Ini akan membantu kami membuat alat web gratis kami menjadi lebih baik


Menutup

Formulir ini memungkinkan Anda mengonversi array PHP ke XML, Anda hanya perlu memasukkan sintaks array [...] atau array(...), rekatkan atau unggah array Anda di bawah ini

telusuri layar penuhkeluar layar penuhcontohsalinan hapus

Nama elemen akar

Ganti angka dalam tag menjadi {name}N


ConvertYour hasilnya bisa dilihat di bawah ini

Hasil konversi larik PHP ke XML

unduh layar penuhkeluar dari salinan layar penuh

Pindah ke Simpan Pindah ke "Tempel Kode" untuk Menyimpannya

Tentang konversi larik PHP ke XML

Tentang alat ini

Array Konversi PHP ke XML dibuat untuk mengubah array PHP secara online menjadi XML yang sesuai. Ini bisa berguna untuk menguji atau men-debug array Anda, juga untuk pemformatan cepat dan menambahkan dokumen XML ke konfigurasi Anda atau di mana pun

Bagaimana itu bekerja?

Cukup tempel array PHP Anda ke textarea di atas dan klik tombol "Ubah" dan Anda akan mendapatkan XML di textarea berikutnya. Array PHP harus tanpa variabel dan fungsi, harus ada sintaks yang bersih seperti [...] atau array(...)

Contoh konversi array PHP ke XML

Sebelum.
[
  'first_section' => [
    'one' => '1',
    'test' => 'sample',
    'job' => 'DEVELOPER',
  ],
  'second_section' => [
    'path' => '/var/test',
    'URL' => 'https://wtools.io/',
    'second_section' => [
      'one' => '1 associated',
      'two' => '2 associated',
      0 => '1 unassociated',
      1 => '2 unassociated',
    ],
  ],
  'third_section' => [
    'version' => ['7.0','7.1','7.2','7.3'],
  ],
]
Setelah.
<?xml version="1.0"?>
<root>
	<first_section>
		<one>1</one>
		<test>sample</test>
		<job>DEVELOPER</job>
	</first_section>
	<second_section>
		<path>/var/test</path>
		<URL>https://wtools.io/</URL>
		<second_section>
			<one>1 associated</one>
			<two>2 associated</two>
			<item0>1 unassociated</item0>
			<item1>2 unassociated</item1>
		</second_section>
	</second_section>
	<third_section>
		<version>
			<item0>7.0</item0>
			<item1>7.1</item1>
			<item2>7.2</item2>
			<item3>7.3</item3>
		</version>
	</third_section>
</root>
Setelah konversi, Anda dapat menerapkan XML ke proyek Anda atau menggunakannya untuk tujuan lain

Menyumbangkan

Apakah Anda menyukai alat ini? . Ini akan membantu kami meningkatkan alat web gratis kami

Paypal

Alat Terkait

Konversikan XML ke PHP Array OnlineKonversikan PHP Array ke JSONKonversikan PHP Array ke YAMLSerialkan array PHPKonversikan PHP Array ke PListKonversikan array PHP ke JS ObjectKonversi output print_r ke array PHP

Tentang kami

WTOOLS - kit Alat Web untuk pengembang, webmaster, spesialis SEO, dan orang lain yang bisnisnya online. Semua alat benar-benar gratis

Tidak mengerti apa yang sedang terjadi? .  

Latar belakang. JSON, XML, Kelas SimpleXMLElement

JSON vs XML

JSON dan XML memiliki beberapa persamaan dan perbedaan struktur dan fungsi. Keduanya populer sebagai format pertukaran data dalam pengaturan klien-server. Itu sebabnya aplikasi yang berurusan dengan kedua format sering membutuhkan fungsionalitas interkonversi antara JSON dan XML

Ikuti tautan untuk mempelajari lebih lanjut tentang JSON vs XML. Artikel ini berfokus pada konversi PHP JSON ke XML.  

Kelas SimpleXMLElement PHP

Kelas PHP

$JSON = '[
{"id":1,"first_name":"Mendie","last_name":"Dunnett","email":"[email protected]","gender":"Male","ip_address":"239.165.115.154"},
{"id":2,"first_name":"Florida","last_name":"Jurn","email":"[email protected]","gender":"Female","ip_address":"3.225.31.136"},
{"id":3,"first_name":"Ingeborg","last_name":"Robinson","email":"[email protected]","gender":"Female","ip_address":"42.187.239.40"},
{"id":4,"first_name":"Ariana","last_name":"Ashborn","email":"[email protected]","gender":"Non-binary","ip_address":"48.25.75.166"},
{"id":5,"first_name":"Melinda","last_name":"Mixture","email":"[email protected]","gender":"Female","ip_address":"177.172.229.237"},
{"id":6,"first_name":"Eulalie","last_name":"Cheves","email":"[email protected]","gender":"Female","ip_address":"132.241.220.47"},
{"id":7,"first_name":"Shermie","last_name":"Dedman","email":"[email protected]","gender":"Male","ip_address":"209.248.152.128"},
{"id":8,"first_name":"Marya","last_name":"Tromans","email":"[email protected]","gender":"Female","ip_address":"175.112.109.52"},
{"id":9,"first_name":"Concordia","last_name":"Cumberledge","email":"[email protected]","gender":"Female","ip_address":"3.189.87.195"},
{"id":10,"first_name":"Doll","last_name":"Mutter","email":"[email protected]","gender":"Female","ip_address":"248.64.142.26"}
]';
_0 membundel sekumpulan metode untuk membangun elemen XML secara terprogram dalam PHP. Metode seperti addChild dan addAttribute merupakan dasar untuk membuat markup XML.  

Satu hal keren tentang SimpleXMLElement adalah bahwa ia dibangun ke dalam PHP. Jadi, Anda tidak perlu repot menginstal paket pihak ketiga

Kelas SimpleXMLElement akan mendukung kita dalam mengonversi JSON ke XML dalam PHP. Alur kerja dimulai dengan mengonversi JSON ke array di PHP dan terakhir ke XML menggunakan metode SimpleXMLElements. Berikut adalah diagram alur untuk proses konversi

Mengonversi objek ke xml php

Konversikan JSON ke XML dalam PHP

Diagram alir di atas memberikan gambaran umum tentang proses tersebut. Mari selami pekerjaan nyata untuk mewujudkan seluruh aliran JSON ini ke XML PHP. Berikut adalah data tiruan JSON

$JSON = '[
{"id":1,"first_name":"Mendie","last_name":"Dunnett","email":"[email protected]","gender":"Male","ip_address":"239.165.115.154"},
{"id":2,"first_name":"Florida","last_name":"Jurn","email":"[email protected]","gender":"Female","ip_address":"3.225.31.136"},
{"id":3,"first_name":"Ingeborg","last_name":"Robinson","email":"[email protected]","gender":"Female","ip_address":"42.187.239.40"},
{"id":4,"first_name":"Ariana","last_name":"Ashborn","email":"[email protected]","gender":"Non-binary","ip_address":"48.25.75.166"},
{"id":5,"first_name":"Melinda","last_name":"Mixture","email":"[email protected]","gender":"Female","ip_address":"177.172.229.237"},
{"id":6,"first_name":"Eulalie","last_name":"Cheves","email":"[email protected]","gender":"Female","ip_address":"132.241.220.47"},
{"id":7,"first_name":"Shermie","last_name":"Dedman","email":"[email protected]","gender":"Male","ip_address":"209.248.152.128"},
{"id":8,"first_name":"Marya","last_name":"Tromans","email":"[email protected]","gender":"Female","ip_address":"175.112.109.52"},
{"id":9,"first_name":"Concordia","last_name":"Cumberledge","email":"[email protected]","gender":"Female","ip_address":"3.189.87.195"},
{"id":10,"first_name":"Doll","last_name":"Mutter","email":"[email protected]","gender":"Female","ip_address":"248.64.142.26"}
]';
_

Hal berikutnya dalam alur kerja adalah mengubahnya menjadi array PHP. Untuk melakukan ini, kita perlu memanggil

$JSON = '[
{"id":1,"first_name":"Mendie","last_name":"Dunnett","email":"[email protected]","gender":"Male","ip_address":"239.165.115.154"},
{"id":2,"first_name":"Florida","last_name":"Jurn","email":"[email protected]","gender":"Female","ip_address":"3.225.31.136"},
{"id":3,"first_name":"Ingeborg","last_name":"Robinson","email":"[email protected]","gender":"Female","ip_address":"42.187.239.40"},
{"id":4,"first_name":"Ariana","last_name":"Ashborn","email":"[email protected]","gender":"Non-binary","ip_address":"48.25.75.166"},
{"id":5,"first_name":"Melinda","last_name":"Mixture","email":"[email protected]","gender":"Female","ip_address":"177.172.229.237"},
{"id":6,"first_name":"Eulalie","last_name":"Cheves","email":"[email protected]","gender":"Female","ip_address":"132.241.220.47"},
{"id":7,"first_name":"Shermie","last_name":"Dedman","email":"[email protected]","gender":"Male","ip_address":"209.248.152.128"},
{"id":8,"first_name":"Marya","last_name":"Tromans","email":"[email protected]","gender":"Female","ip_address":"175.112.109.52"},
{"id":9,"first_name":"Concordia","last_name":"Cumberledge","email":"[email protected]","gender":"Female","ip_address":"3.189.87.195"},
{"id":10,"first_name":"Doll","last_name":"Mutter","email":"[email protected]","gender":"Female","ip_address":"248.64.142.26"}
]';
1 di PHP

$JSON_arr = json_decode($JSON, true);

Memanggil fungsi ini akan mengembalikan array asosiatif di PHP. Berikut sekilas array yang dikembalikan karena panggilan di atas

Array
(
    [0] => Array
        (
            [id] => 1
            [first_name] => Mendie
            [last_name] => Dunnett
            [email] => [email protected]
            [gender] => Male
            [ip_address] => 239.165.115.154
        )
 
 .
 . 
 .    
 
    [9] => Array
        (
            [id] => 10
            [first_name] => Doll
            [last_name] => Mutter
            [email] => [email protected]
            [gender] => Female
            [ip_address] => 248.64.142.26
        )
 
)
_

Langkah selanjutnya adalah menginisialisasi objek SimpleXMLElement. Objek PHP SimpleXMLElement mewakili dokumen XML dan menginisialisasi elemen root. Elemen root akan menyertakan semua elemen anak saat kita mem-parsing array

$xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><root></root>')
_

SimpleXMLElement baru adalah sintaks untuk menginisialisasi objek kelas ini. Objek sekarang mewakili dokumen XML. Amati fungsi konstruktor, yang membantu membangun struktur dasar dengan menyiapkan versi XML dan tag root

Sekarang sampai pada bagian yang menyenangkan, fungsi inti konversi PHP JSON ke XML. Fungsi ini mengharapkan array JSON dan SimpleXMLElement dan menggunakan metode loop dan kelas untuk membangun SimpleXMLObject dari array JSON

function arraytoXML($json_arr, &$xml)
{
    foreach($json_arr as $key => $value)
    {
        if(is_int($key))
        {
            $key = 'Element '.$key;  //To avoid numeric tags like <0></0>
        }
        if(is_array($value))
        {
            $label = $xml->addChild($key);
            arrayToXml($value, $label);  //Adds nested elements.
        }
        else
        {
            $xml->addChild($key, $value);
        }
    }
}

Fungsi mengharapkan larik JSON dan referensi ke objek SimpleXMLElement. Fungsi ini menyertakan panggilan rekursif saat bertemu dengan array bersarang. Outputnya adalah objek SimpleXMLElement sebagai bentuk perantara

SimpleXMLElement Object
(
    [Element 0] => SimpleXMLElement Object
        (
            [id] => 1
            [first_name] => Mendie
            [last_name] => Dunnett
            [email] => [email protected]
            [gender] => Male
            [ip_address] => 239.165.115.154
        )
    .
    .
    .
    [Element 9] => SimpleXMLElement Object
        (
            [id] => 10
            [first_name] => Doll
            [last_name] => Mutter
            [email] => [email protected]
            [gender] => Female
            [ip_address] => 248.64.142.26
        )
 
)

Terakhir, dengan menggunakan metode asXML pada objek SimpleXMLElement, kita menulis objek ke file sebagai XML.  

$xml->asXML('output.xml');

Inilah hasilnya

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <Element0>
        <id>1</id>
        <first_name>Mendie</first_name>
        <last_name>Dunnett</last_name>
        <email>[email protected]</email>
        <gender>Male</gender>
        <ip_address>239.165.115.154</ip_address>
    </Element0>
    <Element1>
        <id>2</id>
        <first_name>Florida</first_name>
        <last_name>Jurn</last_name>
        <email>[email protected]</email>
        <gender>Female</gender>
        <ip_address>3.225.31.136</ip_address>
    </Element1>
    <Element2>
        <id>3</id>
        <first_name>Ingeborg</first_name>
        <last_name>Robinson</last_name>
        <email>[email protected]</email>
        <gender>Female</gender>
        <ip_address>42.187.239.40</ip_address>
    </Element2>
    <Element3>
        <id>4</id>
        <first_name>Ariana</first_name>
        <last_name>Ashborn</last_name>
        <email>[email protected]</email>
        <gender>Non-binary</gender>
        <ip_address>48.25.75.166</ip_address>
    </Element3>
    <Element4>
        <id>5</id>
        <first_name>Melinda</first_name>
        <last_name>Mixture</last_name>
        <email>[email protected]</email>
        <gender>Female</gender>
        <ip_address>177.172.229.237</ip_address>
    </Element4>
    <Element5>
        <id>6</id>
        <first_name>Eulalie</first_name>
        <last_name>Cheves</last_name>
        <email>[email protected]</email>
        <gender>Female</gender>
        <ip_address>132.241.220.47</ip_address>
    </Element5>
    <Element6>
        <id>7</id>
        <first_name>Shermie</first_name>
        <last_name>Dedman</last_name>
        <email>[email protected]</email>
        <gender>Male</gender>
        <ip_address>209.248.152.128</ip_address>
    </Element6>
    <Element7>
        <id>8</id>
        <first_name>Marya</first_name>
        <last_name>Tromans</last_name>
        <email>[email protected]</email>
        <gender>Female</gender>
        <ip_address>175.112.109.52</ip_address>
    </Element7>
    <Element8>
        <id>9</id>
        <first_name>Concordia</first_name>
        <last_name>Cumberledge</last_name>
        <email>[email protected]</email>
        <gender>Female</gender>
        <ip_address>3.189.87.195</ip_address>
    </Element8>
    <Element9>
        <id>10</id>
        <first_name>Doll</first_name>
        <last_name>Mutter</last_name>
        <email>[email protected]</email>
        <gender>Female</gender>
        <ip_address>248.64.142.26</ip_address>
    </Element9>
</root>

Fiuh. Itu banyak tanah untuk menutupi. Mari kita gabungkan semua bagian

<?php
 
$JSON_arr = json_decode($JSON, true);
 
$xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><root></root>');
 
function arraytoXML($json_arr, &$xml)
{
    foreach($json_arr as $key => $value)
    {
        if(is_int($key))
        {
            $key = 'Element'.$key;  //To avoid numeric tags like <0></0>
        }
        if(is_array($value))
        {
            $label = $xml->addChild($key);
            arrayToXml($value, $label);  //Adds nested elements.
        }
        else
        {
            $xml->addChild($key, $value);
        }
    }
}
 
arraytoXML($JSON_arr, $xml);
print_r($xml->asXML('output.xml'));
?>

Sempurna. Dengan ini, kita sudah siap untuk saat ini. Mari kita selesaikan artikel ini

Bungkus

Artikel ini menunjukkan cara mengonversi JSON ke XML dalam PHP. Ini mengikuti pendekatan langkah demi langkah dari parsing JSON ke array PHP dan kemudian ke objek PHP SimpleXMLElement. Terakhir, ini menunjukkan cara mengonversi objek SimpleXMLElement ke file XML. Kami harap Anda telah memahami setiap langkah alur kerja

Semoga Anda menyukai artikel ini. Nantikan lebih lanjut di FuelingPHP

Ingin mempelajari lebih lanjut tentang PHP?

Kami memiliki banyak artikel menarik yang berhubungan dengan PHP. Anda dapat menjelajahi ini untuk mempelajari lebih lanjut tentang PHP

  • Cara mendorong item ke indeks pertama array PHP
  • Intro ke Symfony Doctrine PHP ArrayCollection
  • Cara membagi array multidimensi di PHP
Mengonversi objek ke xml php

Pos terkait

Mengonversi objek ke xml php
Cara Mengonversi array PHP ke xml
Mengonversi objek ke xml php
Array Objek di PHP. Buat, Urutkan, Filter, Gabungkan, Cari, Dll
Mengonversi objek ke xml php
Cara membuat XML di PHP
Mengonversi objek ke xml php
Cara mengonversi XML ke Array atau Objek di PHP


  • ← Cara Mengonversi XML ke JSON di PHP
  • Cara Menghapus File di PHP Jika Ada dengan Contoh Kode 2023 →

Tulis Kode Lebih Baik Lebih Cepat

Klik di sini untuk mendapatkan rahasia teratas 'Menjadi Rockstar PHP Dev dalam 7 Hari' kami dikirimkan ke kotak masuk Anda

Daftar

Mengonversi objek ke xml php

Keajaiban Stefanus

Hai. Saya harap Anda menikmati artikel ini. Saya telah mengembangkan situs web dan perangkat lunak secara profesional selama lebih dari 20 tahun. Saya memulai FuelingPHP sebagai cara untuk memberikan kembali kepada komunitas sumber terbuka yang membantu saya dapat hidup dengan nyaman membangun hal-hal yang saya sukai