Convertiți XML în Asociativ Array în PHP

Convert Xml Associative Array Php



XML (Extensible Markup Language) este un tip de limbaj de markup care este utilizat pentru a stoca datele într-un format lizibil de către om. Este diferit de alte limbaje de marcare. Fiecare etichetă a acestui limbaj este definită de utilizator. Utilizarea XML este soluția mai bună pentru a stoca o cantitate mică de date atunci când nu doriți să utilizați nicio bază de date pentru stocarea datelor. Datele din documentul XML pot fi accesate și utilizate cu ușurință în orice aplicație web utilizând un script PHP. Modul în care documentul XML poate fi analizat și stocat într-o matrice asociativă este prezentat în acest tutorial.

Funcții necesare

Unele funcții încorporate sunt utilizate pentru a converti conținutul XML într-o matrice asociativă PHP. Scopurile diferitelor funcții sunt explicate mai jos.







file_get_contents ():



Această funcție returnează datele șirului prin conversia oricăror date XML. Este nevoie de orice nume de fișier XML ca argument.



simplexml_load_string ():





Această funcție returnează obiectul XML prin conversia datelor șirului XML. Este nevoie de date șir XML ca argument.

simplexml_load_file ():



Această funcție returnează obiectul XML prin conversia conținutului fișierului XML. Acesta ia numele fișierului XML ca argument.

SimpleXMLElement ():

Este folosit pentru a crea un obiect XML din date XML. Acesta ia valoarea conținutului XML ca argument.

json_encode ():

Returnează obiectul JSON prin conversia obiectului XML. Acesta ia variabila obiect XML ca argument.

json_decode ():

Returnează matricea PHP asociativă prin conversia datelor JSON. Ia variabila obiect JSON ca argument.

Creați fișier XML

Vi se va cere să creați un fișier XML sau să definiți date XML în script pentru a cunoaște modul de conversie a datelor XML într-o matrice asociativă PHP. Creați un fișier XML numit courses.xml cu următorul conținut și stocați-l în locația în care se află scriptul PHP. Fișierul conține elemente copil sub un element părinte. Deci, o matrice asociativă bidimensională va genera după convertirea următorului fișier XML într-o matrice PHP.

cursuri.xml

versiune=„1.0”?>
>
>Programare web>
>6 luni>
>
>
>Bucuria programării PHP>
>Alan Forbes>
>Insula Prunelor>
>
>
>PHP& MySQL Novice to Ninja
Tom Butler și Kevin Yank
SitePoint


Capul întâi PHP și MySQL
Lynn Beighley și Michael Morrison
O’Reilly


Exemplu-1: convertiți conținutul fișierului XML într-o matrice asociativă fără a verifica eroarea

Următorul script prezintă utilizările funcțiilor file_get_contents () și simplexml_load_string () pentru a crea obiect XML. Aici, fișierul courses.xml este utilizat pentru conversia creată anterior. Apoi, funcțiile json_encode () și json_decode () sunt utilizate pentru a obține matricea asociativă după convertirea conținutului fișierului XML. Dacă nu există nicio eroare în conținutul XML, atunci nicio eroare nu va fi afișată de următorul script. Aici,

  tag-ul este utilizat pentru a imprima matricea într-un mod formatat.



// Definiți fișierul XML existent
$ xml = „courses.xml”;

// Citiți conținutul complet al fișierului XML ca șir XML
$ xmlData = file_get_contents ($ xml);

// Conversia datelor șir XML în obiect XML
$ xmlObject = simplexml_load_string ($ xmlData);

// Conversia obiectului XML în obiect JSON
$ jsonObject = json_encode ($ xmlObject);

// Convertiți obiectul JSON într-un tablou asociativ
$ assArray = json_decode ($ jsonObject, Adevărat);

// Imprimați structura matricei asociative
aruncat '

';  
print_r ($assArray);
echo '

'
;

?>

Ieșire:

Următoarea ieșire va apărea după executarea scriptului PHP. Aici, este generată o matrice bidimensională pe baza conținutului fișierului XML, courses.xml.

Exemplu-2: convertiți conținutul fișierului XML într-o matrice asociativă cu verificarea erorii

Este mai bine să verificați eroarea atunci când convertiți XML într-o matrice asociativă. Acesta îl va ajuta pe coder să depaneze codul dacă verificarea erorilor este implementată în script. Următorul script prezintă modalitățile de a converti conținutul fișierului XML într-o matrice asociativă utilizând funcția simplexml_load_file () cu gestionarea erorilor. Funcția libxml_use_internal_errors () este utilizată cu valoarea TRUE pentru a activa gestionarea erorilor. Dacă conținutul fișierului XML care este utilizat în script conține orice eroare, atunci funcția simplexml_load_file () va reveni fals, iar mesajul de eroare va fi tipărit utilizând funcția libxml_get_errors (). Dacă nu există nicio eroare în fișierul XML, atunci conținutul fișierului se va converti în mod corespunzător într-o matrice asociativă bidimensională.



// Activați gestionarea erorilor utilizatorului
libxml_use_internal_errors (ADEVĂRAT);

// Creați obiect XML
$ objXml = simplexml_load_file („courses.xml”);

// Eroare de imprimare dacă obiectul XML returnează fals
dacă ($ objXml === FALS) {
aruncat „Au existat erori la analizarea fișierului XML. n';
pentru fiecare( libxml_get_errors () la fel de $ eroare) {
aruncat $ eroare->mesaj;
}
Ieșire ;
}

// Conversia obiectului XML în obiect JSON
$ objJson = json_encode ($ objXml);
// Convertiți obiectul JSON într-un tablou asociativ
$ assarr = json_decode ($ objJson, ADEVĂRAT);

// Imprimați structura matricei asociative
aruncat
';  
print_r ($assarr);
echo '
;

?>

Ieșire:

Următoarea ieșire va apărea după executarea scriptului PHP. Aici, nu există nicio eroare în fișierul XML. Deci, o matrice bidimensională a generat, ca în exemplul anterior, pe baza conținutului fișierului XML, courses.xml.

Exemplu-3: convertiți conținutul XML într-o matrice asociativă

Următorul script prezintă modul de conversie a datelor XML într-o matrice asociativă utilizând funcția SimpleXMLElement (). În script, conținutul XML este stocat într-o variabilă numită $ xml care este utilizată ca argument al funcției, SimpleXMLElement (). Apoi, funcțiile json_encode () și json_decode () sunt utilizate pentru a obține matricea asociativă după convertirea conținutului fișierului XML.



// Definiți variabila XML
$ xml = <<


[e-mail protejat]

12 / A, Dhanmondi
Dhaka



[e-mail protejat]

156, motiv
Dhaka



[e-mail protejat]

21 / B, Mogbazar
Dhaka



XML
;

// Creați obiect XML
$ xmlObject = nouSimpleXMLElement($ xml);
// Creați un obiect JSON
$ jsonObject = json_encode ($ xmlObject);
// Convertiți obiectul JSON într-un tablou asociativ
$ assArray = json_decode ($ jsonObject, Adevărat);

// Imprimați structura matricei asociative
aruncat
';  
print_r ($assArray);
echo '
;

?>

Ieșire:

Următoarea ieșire va apărea după executarea scriptului PHP. Aici, se generează o matrice bidimensională pe baza conținutului variabilei XML, $ xml.

Concluzie:

Au existat trei moduri diferite de a converti conținutul XML într-un tablou asociativ, care a fost prezentat în acest tutorial. Acest lucru îi va ajuta pe cititori să cunoască modul de a lucra cu date XML și să analizeze datele din conținutul XML utilizând cu ușurință un script PHP.