Converti XML in array associativo in PHP

Converti XML in array associativo in PHP

XML (linguaggio di markup estensibile) è un tipo di linguaggio di markup che viene utilizzato per archiviare i dati in un formato leggibile dall'uomo. È diverso dalle altre lingue di markup. Ogni tag di questa lingua è definito dall'utente. L'uso di XML è la soluzione migliore per archiviare una piccola quantità di dati quando non si desidera utilizzare alcun database per archiviare i dati. I dati dal documento XML possono essere facilmente accessibili e utilizzati in qualsiasi applicazione Web utilizzando uno script PHP. Come il documento XML può essere analizzato e archiviato in un array associativo è mostrato in questo tutorial.

Funzioni necessarie

Alcune funzioni integrate vengono utilizzate per convertire il contenuto XML in un array PHP associativo. Gli scopi di diverse funzioni sono spiegati di seguito.

file_get_contents ():

Questa funzione restituisce i dati stringa convertendo qualsiasi dati XML. Impiega qualsiasi nome di file XML come argomento.

simplexml_load_string ():

Questa funzione restituisce l'oggetto XML convertendo i dati della stringa XML. Ci vogliono i dati di stringa XML come argomento.

simplexml_load_file ():

Questa funzione restituisce l'oggetto XML convertendo il contenuto del file XML. Prende il nome del file XML come argomento.

Simplexmlelement ():

Viene utilizzato per creare un oggetto XML dai dati XML. Prende il valore del contenuto XML come argomento.

JSON_ENCODE ():

Restituisce l'oggetto JSON convertendo l'oggetto XML. Prende la variabile dell'oggetto XML come argomento.

json_decode ():

Restituisce l'array PHP associativo convertendo i dati JSON. Prende la variabile dell'oggetto JSON come argomento.

Crea file XML

Ti verrà richiesto di creare un file XML o definire i dati XML nello script per conoscere la strada nella conversione dei dati XML in un array PHP associativo. Crea un file XML denominato corsi.XML con i seguenti contenuti e memorizzalo nella posizione in cui si trova lo script PHP. Il file contiene elementi figlio sotto un elemento genitore. Quindi, un array associativo bidimensionale genererà dopo aver convertito il seguente file XML in un array PHP.

corsi.XML



Programmazione web
6 mesi


La gioia della programmazione PHP
Alan Forbes
Plum Island


Php e mysql principiante a ninja
Tom Butler e Kevin Yank
Sitepoint


Testa prima php e mysql
Lynn Beighley e Michael Morrison
O'Reilly


Esempio-1: convertire il contenuto del file XML in un array associativo senza controllare l'errore

Il seguente script mostra gli usi di file_get_contents () e simplexml_load_string () per creare oggetto XML. Qui, i corsi.Il file XML viene utilizzato per la conversione creata prima. Successivamente, la funzione JSON_ENCODE () e JSON_DECODE () vengono utilizzate per ottenere l'array associativo dopo aver convertito il contenuto del file XML. Se non esiste alcun errore nel contenuto XML, non verrà visualizzato alcun errore dal seguente script. Qui,

 Il tag viene utilizzato per stampare l'array in modo formattato.

// Definisci il file XML esistente
$ xml = "corsi.XML ";
// Leggi il contenuto completo del file XML come stringa XML
$ xmldata = file_get_contents ($ xml);
// Converti i dati di stringa XML in oggetto XML
$ xmlobject = simplexml_load_string ($ xmldata);
// Converti l'oggetto XML in oggetto JSON
$ JSONObject = JSON_ENCODE ($ XMLOBJECT);
// Converti l'oggetto JSON in un array associativo
$ Assarray = JSON_DECODE ($ JSONObject, true);
// Stampa la struttura dell'array associativo
eco "

";
print_r ($ assarray);
eco "

";
?>

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script PHP. Qui, un array bidimensionale viene generato in base al contenuto del file XML, corsi.XML.

Esempio 2: converti il ​​contenuto del file XML in un array associativo con errore di controllo

È meglio controllare l'errore durante la conversione di XML in un array associativo. Aiuterà il programmatore a eseguire il debug del codice se il controllo dell'errore è implementato nello script. Il seguente script mostra i modi per convertire il contenuto del file XML in un array associativo utilizzando la funzione simplexml_load_file () con gestione degli errori. La funzione libxml_use_internal_errors () viene utilizzata con valore reale per abilitare la gestione degli errori. Se il contenuto del file XML utilizzato nello script contiene qualsiasi errore, la funzione simplexml_load_file () restituirà false e il messaggio di errore verrà stampato utilizzando la funzione libxml_get_errors (). Se non esiste alcun errore nel file XML, il contenuto del file si convertirà correttamente in un array associativo bidimensionale.

// Abilita la gestione degli errori dell'utente
libxml_use_internal_errors (true);
// Crea oggetto XML
$ objxml = simplexml_load_file ("corsi.XML ");
// Errore di stampa se l'oggetto XML restituisce falso
if ($ objxml === false)
Echo "C'erano errori che analizzavano il file XML.\N";
foreach (libxml_get_errors () come $ error)
echo $ error-> messaggio;

Uscita;

// Converti l'oggetto XML in oggetto JSON
$ objjson = json_encode ($ objxml);
// Converti l'oggetto JSON in un array associativo
$ assarr = json_decode ($ objjson, true);
// Stampa la struttura dell'array associativo
eco "
";
print_r ($ assarr);
eco "
";
?>

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script PHP. Qui, non esiste alcun errore nel file XML. Quindi, un array bidimensionale ha generato come l'esempio precedente in base al contenuto del file XML, corsi.XML.

Esempio-3: converti il ​​contenuto XML in un array associativo

Il seguente script mostra il modo di convertire i dati XML in un array associativo utilizzando la funzione simplexmlelement (). Nello script, il contenuto XML viene archiviato in una variabile denominata $ XML che viene utilizzata come argomento della funzione, SimpleXMlelement (). Successivamente, la funzione JSON_ENCODE () e JSON_DECODE () vengono utilizzate per ottenere l'array associativo dopo aver convertito il contenuto del file XML.

// Definisci la variabile XML
$ xml = <<


[email protected]

12/a, dhanmondi
Dhaka



Esempio [email protected]

156, Motijeel
Dhaka



[email protected]

21/b, Mogbazar
Dhaka



XML;
// Crea oggetto XML
$ xmLobject = new SimplexMlelement ($ XML);
// Crea oggetto JSON
$ JSONObject = JSON_ENCODE ($ XMLOBJECT);
// Converti l'oggetto JSON in un array associativo
$ Assarray = JSON_DECODE ($ JSONObject, true);
// Stampa la struttura dell'array associativo
eco "
";
print_r ($ assarray);
eco "
";
?>

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script PHP. Qui, un array bidimensionale viene generato in base al contenuto della variabile XML, $ XML.

Conclusione:

C'erano tre diversi modi per convertire il contenuto XML in un array associativo che è stato mostrato in questo tutorial. Ciò aiuterà i lettori a conoscere il modo di lavorare con i dati XML e analizzare i dati dal contenuto XML utilizzando facilmente uno script PHP.