Converteix XML a Associative Array en PHP

Convert Xml Associative Array Php



XML (Extensible Markup Language) és un tipus de llenguatge de marques que s’utilitza per emmagatzemar les dades en un format llegible per humans. És diferent dels altres llenguatges de marques. Totes les etiquetes d’aquest idioma estan definides per l’usuari. L’ús d’XML és la millor solució per emmagatzemar una petita quantitat de dades quan no voleu utilitzar cap base de dades per emmagatzemar-les. Es pot accedir i utilitzar fàcilment les dades del document XML a qualsevol aplicació web mitjançant un script PHP. En aquest tutorial es mostra com es pot analitzar i emmagatzemar el document XML en una matriu associativa.

Funcions necessàries

Algunes funcions integrades s’utilitzen per convertir el contingut XML en una matriu PHP associativa. A continuació s’expliquen els propòsits de les diferents funcions.







file_get_contents ():



Aquesta funció retorna les dades de la cadena convertint qualsevol dada XML. Pren qualsevol nom de fitxer XML com a argument.



simplexml_load_string ():





Aquesta funció retorna l'objecte XML convertint les dades de la cadena XML. Pren dades de cadenes XML com a argument.

simplexml_load_file ():



Aquesta funció retorna l'objecte XML convertint el contingut del fitxer XML. Pren el nom del fitxer XML com a argument.

SimpleXMLElement ():

S'utilitza per crear un objecte XML a partir de dades XML. Pren el valor del contingut XML com a argument.

json_encode ():

Torna l'objecte JSON convertint l'objecte XML. Pren la variable objecte XML com a argument.

json_decode ():

Retorna la matriu PHP associativa mitjançant la conversió de dades JSON. Pren la variable d'objecte JSON com a argument.

Crea un fitxer XML

Haureu de crear un fitxer XML o definir dades XML a l'script per conèixer la manera de convertir les dades XML en una matriu PHP associada. Creeu un fitxer XML anomenat courses.xml amb el contingut següent i emmagatzemeu-lo a la ubicació on hi ha l'script PHP. El fitxer conté elements secundaris sota un element pare. Per tant, es generarà una matriu associativa bidimensional després de convertir el fitxer XML següent en una matriu PHP.

cursos.xml

versió='1.0'?>
>
>Programació web>
>6 mesos>
>
>
>L’alegria de la programació PHP>
>Alan Forbes>
>Plum Island>
>
>
>PHP& MySQL Novice to Ninja
Tom Butler i Kevin Yank
SitePoint


Dirigeix ​​primer PHP i MySQL
Lynn Beighley i Michael Morrison
O'Reilly


Exemple-1: converteix el contingut del fitxer XML en una matriu associativa sense comprovar l’error

El següent script mostra els usos de les funcions file_get_contents () i simplexml_load_string () per crear objectes XML. Aquí, el fitxer courses.xml s'utilitza per a la conversió que es va crear abans. A continuació, s'utilitzen les funcions json_encode () i json_decode () per obtenir la matriu associativa després de convertir el contingut del fitxer XML. Si no hi ha cap error al contingut XML, el següent script no mostrarà cap error. Aquí,

  tag s'utilitza per imprimir la matriu de manera formatada.



// Definiu el fitxer XML existent
$ xml = 'courses.xml';

// Llegiu el contingut complet del fitxer XML com a cadena XML
$ xmlData = file_get_contents ($ xml);

// Converteix dades de cadenes XML en objecte XML
$ xmlObject = simplexml_load_string ($ xmlData);

// Converteix l'objecte XML en objecte JSON
$ jsonObjecte = json_encode ($ xmlObject);

// Converteix l'objecte JSON en una matriu associativa
$ assArray = json_decode ($ jsonObjecte, cert);

// Imprimiu l'estructura de la matriu associativa
trobo '

';  
print_r ($assArray);
echo '

'
;

?>

Sortida:

La següent sortida apareixerà després d'executar l'script PHP. Aquí es genera una matriu bidimensional basada en el contingut del fitxer XML, courses.xml.

Exemple-2: converteix el contingut del fitxer XML en una matriu associativa amb un error de comprovació

És millor comprovar l'error en convertir XML en una matriu associativa. Ajudarà el programador a depurar el codi si la comprovació d'errors està implementada a l'script. El següent script mostra les maneres de convertir el contingut del fitxer XML en una matriu associativa mitjançant la funció simplexml_load_file () amb tractament d'errors. La funció libxml_use_internal_errors () s'utilitza amb el valor TRUE per habilitar la gestió d'errors. Si el contingut del fitxer XML que s’utilitza a l’escriptura conté algun error, la funció simplexml_load_file () tornarà falsa i el missatge d’error s’imprimirà mitjançant la funció libxml_get_errors (). Si no hi ha cap error al fitxer XML, el contingut del fitxer es convertirà correctament en una matriu associativa bidimensional.



// Activa la gestió d'errors de l'usuari
libxml_use_internal_errors (CERT);

// Crea objecte XML
$ objXml = fitxer_càrrega_simplexml ('courses.xml');

// Error d'impressió si l'objecte XML torna fals
si ($ objXml === FALS) {
trobo 'Hi va haver errors en analitzar el fitxer XML. n';
per cadascú( libxml_get_errors () com $ error) {
trobo $ error->missatge;
}
sortir ;
}

// Converteix l'objecte XML en objecte JSON
$ objJson = json_encode ($ objXml);
// Converteix l'objecte JSON en una matriu associativa
$ assarr = json_decode ($ objJson, CERT);

// Imprimiu l'estructura de la matriu associativa
trobo '
';  
print_r ($assarr);
echo '
'
;

?>

Sortida:

La següent sortida apareixerà després d'executar l'script PHP. Aquí no hi ha cap error al fitxer XML. Per tant, s’ha generat una matriu bidimensional com l’exemple anterior basada en el contingut del fitxer XML, courses.xml.

Exemple-3: converteix contingut XML en una matriu associativa

El següent script mostra la manera de convertir les dades XML en una matriu associativa mitjançant la funció SimpleXMLElement (). A l'script, el contingut XML s'emmagatzema en una variable anomenada $ xml que s'utilitza com a argument de la funció, SimpleXMLElement (). A continuació, s'utilitzen les funcions json_encode () i json_decode () per obtenir la matriu associativa després de convertir el contingut del fitxer XML.



// Definiu la variable XML
$ xml = <<


[protegit per correu electrònic]

12 / A, Dhanmondi
Dhaka



[protegit per correu electrònic]

156, motiu
Dhaka



[protegit per correu electrònic]

21 / B, Mogbazar
Dhaka



XML
;

// Crea un objecte XML
$ xmlObject = nouSimpleXMLElement($ xml);
// Crea un objecte JSON
$ jsonObjecte = json_encode ($ xmlObject);
// Converteix l'objecte JSON en una matriu associativa
$ assArray = json_decode ($ jsonObjecte, cert);

// Imprimiu l'estructura de la matriu associativa
trobo '
';  
print_r ($assArray);
echo '
'
;

?>

Sortida:

La següent sortida apareixerà després d'executar l'script PHP. Aquí es genera una matriu bidimensional basada en el contingut de la variable XML, $ xml.

Conclusió:

Hi havia tres maneres diferents de convertir el contingut XML en una matriu associativa que es mostrava en aquest tutorial. Això ajudarà els lectors a conèixer la manera de treballar amb dades XML i analitzar les dades del contingut XML mitjançant un script PHP fàcilment.