PHP XML ke dalam Array

王林
王林asal
2024-08-29 13:09:581088semak imbas

Kami menggunakannya untuk menukar dokumen XML kepada tatasusunan PHP. Kadangkala, kita perlu mengendalikan dokumen XML sebagai data masuk atau data eksport sebagai dokumen XML. Bahasa XML digunakan untuk menstruktur perkongsian data merentas tapak web atau aplikasi. Jadi, ia menyediakan operasi XML kepada tatasusunan untuk berfungsi dengan lancar dengan data XML.

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Semasa menukar, kita perlu menggunakan beberapa fungsi seperti yang dinyatakan di bawah –

  • file_get_contents() fungsi: Fungsi ini membaca fail sebagai rentetan.
  • fungsi simplexml_load_string(): Fungsi ini digunakan untuk menghuraikan XML dan mengembalikan objek.
  • fungsi json_encode(): Fungsi ini mengekod rentetan JSON dan mengembalikan nilai JSON.
  • fungsi json_decode(): Fungsi ini menyahkod rentetan JSON(pembolehubah PHP).

Menggunakan PHP XML ke dalam Array

Ia menerima dokumen XML dan menukarnya menjadi tatasusunan. Katakan kita mempunyai dokumen XML sebagai ExXMl.xml; sekarang, kami mahu menukarnya kepada tatasusunan. Jadi, untuk menukar, kita perlu mengikuti beberapa langkah –

  1. Import fail ExXMl.xml ke dalam PHP dengan bantuan fungsi file_get_content(), supaya ia membaca fail ExXMl.xml sebagai rentetan dan menyimpannya ke dalam pembolehubah.
  2. Seterusnya, data rentetan baca akan ditukar menjadi objek dengan bantuan fungsi simplexml_load_string().
  3. Akhir sekali, gunakan fungsi json_decode() untuk menyahkod rentetan json, yang menukar rentetan yang dikodkan json kepada tatasusunan.

Contoh

Contoh untuk memuatkan fail XML dan menukarnya menjadi tatasusunan PHP –

Contoh #1

Pertama, kami mencipta fail data xml dengan nama “ExXML.xml” dan mencipta kandungan data sebagai –

Kod:

<?xml version="1.0" encoding="utf-8"?>
<Student>
<firstname name = 'John'>
<rollno> 12 </rollno>
<marks> 78 </marks>
<subject> English </subject>
</firstname>
<firstname name='Sam'>
<rollno> 15 </rollno>
<marks> 80 </marks>
<subject> English </subject>
</firstname>
<firstname name='Praveen'>
<rollno> 30 </rollno>
<marks> 50 </marks>
<subject> English </subject>
</firstname>
</Student>
Next,we create the PHP file to read and load the XML file, as below -
<?php
// xml file
$file = "ExXML.xml";
// Read XML file as string
$xml_file = file_get_contents($file);
//  xml string is Convert into an object
$obj = simplexml_load_string($xml_file);
// AN object Convert into json string
$json_string = json_encode($obj);
// Convert json string into an array
$array = json_decode($json_string, true);
// print an array
print_r($array);
?>

Output:

PHP XML ke dalam Array

Semua tag pembukaan dan penutup adalah betul. Seterusnya, objek yang dimuatkan mengekod dan menyahkod sebagai tatasusunan PHP dengan bantuan fungsi json_encode () dan json_decode() masing-masing.

Contoh #2

Contoh apabila menemui dan menghuraikan ralat-

Seterusnya, kami menulis kod PHP untuk memahami PHP XML ke dalam tatasusunan, di mana kami akan melihat ralat penghuraian yang berlaku semasa melaksanakan XML ke dalam tatasusunan kerana teg XML tidak padan atau tidak berstruktur dengan betul, seperti di bawah –

Kod:

<?xml version='1.0'?>
<Student>
<firstname name = 'John'>
<rollno> 12 </rollno>
<marks> 78 </marks>
<!-- missing -->
</firstname>
<firstname name='Sanjay'>
<rollno> 15 </rollno>
<marks> 80 </marks>
<!-- mismatch tag -->
<subject> English <subject>
</firstname>
<firstname name='Parvez'>
<rollno> 30 </rollno>
<marks> 50 </marks>
<subject> English </subject>
</firstname>
</Student>
Next, we create the PHP file to read and load the XML file, as below -
<?php
// xml file
$file = "ExXML.xml";
// Read file as string
$xml_file = file_get_contents($file);
//  xml string is Convert into an object
$obj = simplexml_load_string($xml_file);
// check xml load or not
if ($obj == FALSE) {
echo "There were errors to parse the XML file.\n";
exit;
}
// AN object Convert into json string
$json_string = json_encode($obj);
// Convert json string into an array
$array = json_decode($json_string, true);
// print an array
print_r($array);
?>

Output:

PHP XML ke dalam Array

Salah satu teg pembuka dan penutup tidak sepadan dan salah satu teg tiada (seperti yang dinyatakan dalam fail XML dengan teg ulasan).  Amaran berlaku semasa menghuraikan dan memuatkan fail XML, seperti yang dilihat dalam output di atas. Jadi, dengan membaca amaran, betulkan fail XML dan muatkannya semula.

Atas ialah kandungan terperinci PHP XML ke dalam Array. 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
Artikel sebelumnya:Penghurai XML PHPArtikel seterusnya:Penghurai XML PHP