Konversi XML ke Array Asosiatif di PHP

Convert Xml Associative Array Php



XML (Extensible Markup Language) adalah salah satu jenis bahasa markup yang digunakan untuk menyimpan data dalam format yang dapat dibaca manusia. Ini berbeda dari bahasa markup lainnya. Setiap tag bahasa ini ditentukan oleh pengguna. Menggunakan XML adalah solusi yang lebih baik untuk menyimpan sejumlah kecil data saat Anda tidak ingin menggunakan database apa pun untuk menyimpan data. Data dari dokumen XML dapat dengan mudah diakses dan digunakan di aplikasi web apa pun menggunakan skrip PHP. Bagaimana dokumen XML dapat diuraikan dan disimpan ke dalam array asosiatif ditunjukkan dalam tutorial ini.

Fungsi yang Diperlukan

Beberapa fungsi bawaan digunakan untuk mengubah konten XML menjadi array PHP asosiatif. Tujuan dari fungsi yang berbeda dijelaskan di bawah ini.







file_get_contents():



Fungsi ini mengembalikan data string dengan mengonversi data XML apa pun. Dibutuhkan nama file XML apa pun sebagai argumen.



simplexml_load_string():





Fungsi ini mengembalikan objek XML dengan mengonversi data string XML. Dibutuhkan data string XML sebagai argumen.

simplexml_load_file():



Fungsi ini mengembalikan objek XML dengan mengonversi konten file XML. Dibutuhkan nama file XML sebagai argumen.

SimpleXMLElement ():

Ini digunakan untuk membuat objek XML dari data XML. Dibutuhkan nilai konten XML sebagai argumen.

json_encode():

Ini mengembalikan objek JSON dengan mengonversi objek XML. Dibutuhkan variabel objek XML sebagai argumen.

json_decode():

Ini mengembalikan array PHP asosiatif dengan mengonversi data JSON. Dibutuhkan variabel objek JSON sebagai argumen.

Buat File XML

Anda akan diminta untuk membuat file XML atau mendefinisikan data XML dalam skrip untuk mengetahui cara mengubah data XML menjadi array PHP asosiatif. Buat file XML bernama course.xml dengan konten berikut dan simpan di lokasi skrip PHP berada. File berisi elemen anak di bawah elemen induk. Jadi, array asosiatif dua dimensi akan dihasilkan setelah mengonversi file XML berikut menjadi array PHP.

kursus.xml

Versi: kapan='1.0'?>
>
>Pemrograman Web>
>6 bulan>
>
>
>Kegembiraan Pemrograman PHP>
>Alan Forbes>
>Pulau Plum>
>
>
>PHP& MySQL Pemula untuk Ninja
Tom Butler & Kevin Yank
Titik Situs


Kepala Pertama PHP & MySQL
Lynn Beighley & Michael Morrison
O'Reilly


Contoh-1: Konversi konten file XML menjadi array asosiatif tanpa memeriksa kesalahan

Skrip berikut menunjukkan penggunaan fungsi file_get_contents() dan simplexml_load_string() untuk membuat objek XML. Di sini, file course.xml digunakan untuk konversi yang telah dibuat sebelumnya. Selanjutnya, fungsi json_encode() dan json_decode() digunakan untuk mendapatkan array asosiatif setelah mengonversi konten file XML. Jika tidak ada kesalahan dalam konten XML, maka tidak ada kesalahan yang akan ditampilkan oleh skrip berikut. Di sini, |_+_| tag digunakan untuk mencetak array dengan cara yang diformat.



//Tentukan file XML yang ada
$xml = 'kursus.xml';

//Baca konten lengkap file XML sebagai string XML
$xmlData = file_get_contents ($xml);

//Mengonversi data string XML menjadi objek XML
$xmlObjek = simplexml_load_string ($xmlData);

//Mengonversi objek XML menjadi objek JSON
$jsonObject = json_encode ($xmlObjek);

//Mengonversi objek JSON menjadi array asosiatif
$assArray = json_decode ($jsonObject, benar);

//Mencetak struktur array asosiatif
dibuang '
  
';

?>

Keluaran:

Output berikut akan muncul setelah menjalankan skrip PHP. Di sini, array dua dimensi dihasilkan berdasarkan konten file XML, course.xml.

Contoh-2: Konversi konten file XML menjadi array asosiatif dengan kesalahan pengecekan

Lebih baik untuk memeriksa kesalahan saat mengonversi XML menjadi array asosiatif. Ini akan membantu pembuat kode untuk men-debug kode jika pemeriksaan kesalahan diterapkan dalam skrip. Skrip berikut menunjukkan cara mengonversi konten file XML menjadi larik asosiatif dengan menggunakan fungsi simplexml_load_file() dengan penanganan kesalahan. Fungsi libxml_use_internal_errors() digunakan dengan nilai TRUE untuk mengaktifkan penanganan kesalahan. Jika konten file XML yang digunakan dalam skrip mengandung kesalahan, maka fungsi simplexml_load_file() akan mengembalikan false, dan pesan kesalahan akan dicetak dengan menggunakan fungsi libxml_get_errors(). Jika tidak ada kesalahan dalam file XML, maka konten file akan dikonversi dengan benar menjadi array asosiatif dua dimensi.



//Aktifkan penanganan kesalahan pengguna
libxml_use_internal_errors (BENAR);

//Buat Objek XML
$ objXml = simplexml_load_file ('kursus.xml');

// Kesalahan cetak jika objek XML mengembalikan false
jika ($ objXml === SALAH) {
dibuang 'Ada kesalahan saat mengurai file XML. ';
untuk setiap( libxml_get_errors () sebagai $ kesalahan) {
dibuang $ kesalahan->pesan;
}
keluar ;
}

//Mengonversi objek XML menjadi objek JSON
$ objJson = json_encode ($ objXml);
//Mengonversi objek JSON menjadi array asosiatif
$assarr = json_decode ($ objJson, BENAR);

//Mencetak struktur array asosiatif
dibuang '
';  
print_r ($assArray);
echo '
'
;

?>

Keluaran:

Output berikut akan muncul setelah menjalankan skrip PHP. Di sini, tidak ada kesalahan dalam file XML. Jadi, array dua dimensi telah dihasilkan seperti contoh sebelumnya berdasarkan konten file XML, course.xml.

Contoh-3: Konversi konten XML menjadi array asosiatif

Skrip berikut menunjukkan cara mengonversi data XML menjadi larik asosiatif dengan menggunakan fungsi SimpleXMLElement(). Dalam skrip, konten XML disimpan ke dalam variabel bernama $xml yang digunakan sebagai argumen fungsi, SimpleXMLElement(). Selanjutnya, fungsi json_encode() dan json_decode() digunakan untuk mendapatkan array asosiatif setelah mengonversi konten file XML.



//Mendefinisikan variabel XML
$xml = <<


[dilindungi email]

12 / A, Dhanmondi
Dhaka



[dilindungi email]

156, Motif
Dhaka



[dilindungi email]

21 / B, Mogbazar
Dhaka



XML
;

//Buat objek XML
$xmlObjek = baruElemenXMLE sederhana($xml);
//Buat Objek JSON
$jsonObject = json_encode ($xmlObjek);
//Mengonversi objek JSON menjadi array asosiatif
$assArray = json_decode ($jsonObject, benar);

//Mencetak struktur array asosiatif
dibuang '
';  
print_r ($assarr);
echo '
'
;

?>

Keluaran:

Output berikut akan muncul setelah menjalankan skrip PHP. Di sini, array dua dimensi dihasilkan berdasarkan konten variabel XML, $xml.

Kesimpulan:

Ada tiga cara berbeda untuk mengubah konten XML menjadi array asosiatif yang ditunjukkan dalam tutorial ini. Ini akan membantu pembaca untuk mengetahui cara bekerja dengan data XML dan mengurai data dari konten XML dengan menggunakan skrip PHP dengan mudah.