Konverter XML til assosiativ matrise i PHP

Konverter XML til assosiativ matrise i PHP

XML (Extensible Markup Language) er en type markeringsspråk som brukes til å lagre dataene i et menneskelig lesbart format. Det er forskjellig fra andre markeringsspråk. Hver tag på dette språket er brukerdefinert. Å bruke XML er den bedre løsningen for å lagre en liten mengde data når du ikke vil bruke noen database for lagring av data. Dataene fra XML -dokumentet kan enkelt nås og brukes i ethvert webapplikasjon ved hjelp av et PHP -skript. Hvordan XML -dokumentet kan analyseres og lagres i et assosiativt utvalg vises i denne opplæringen.

Nødvendige funksjoner

Noen innebygde funksjoner brukes til å konvertere XML-innholdet til en assosiativ PHP-matrise. Formålet med forskjellige funksjoner er forklart nedenfor.

file_get_contents ():

Denne funksjonen returnerer strengdataene ved å konvertere eventuelle XML -data. Det tar ethvert XML -filnavn som et argument.

simplexml_load_string ():

Denne funksjonen returnerer XML -objektet ved å konvertere XML -strengdataene. Det tar XML -strengdata som et argument.

simplexml_load_file ():

Denne funksjonen returnerer XML -objektet ved å konvertere XML -filinnhold. Det tar XML -filnavnet som et argument.

SimplexMlElement ():

Det brukes til å lage et XML -objekt fra XML -data. Det tar XML -innholdsverdien som et argument.

json_encode ():

Den returnerer JSON -objektet ved å konvertere XML -objektet. Det tar XML -objektvariabelen som et argument.

json_decode ():

Den returnerer den assosiative PHP -matrisen ved å konvertere JSON -data. Det tar JSON -objektvariabelen som et argument.

Lag XML -fil

Du vil bli pålagt å opprette en XML -fil eller definere XML -data i skriptet for å vite veien for å konvertere XML -data til en assosiativ PHP -matrise. Opprett en XML -fil som heter Courses.XML med følgende innhold og lagrer det på stedet der PHP -skriptet er. Filen inneholder barneelementer under et foreldreelement. Så en todimensjonal assosiativ matrise vil generere etter å ha konvertert følgende XML-fil til en PHP-matrise.

kurs.XML



Nettprogrammering
6 måneder


Gleden ved PHP -programmering
Alan Forbes
Plum Island


Php & mysql nybegynner til ninja
Tom Butler & Kevin Yank
Sitepoint


Head First PHP & MySQL
Lynn Beighley & Michael Morrison
O'Reilly


Eksempel-1: Konverter XML-filinnhold til et assosiativt utvalg uten å sjekke feil

Følgende skript viser bruken av file_get_contents () og simplexml_load_string () funksjoner for å lage XML -objekt. Her, kursene.XML -fil brukes til konvertering som ble opprettet før. Neste, json_encode () og json_decode () -funksjonen brukes til å få det assosiative matrisen etter å ha konvertert XML -filinnholdet. Hvis det ikke eksisterer feil i XML -innholdet, vil det ikke vises noen feil ved følgende skript. Her,

 Tag brukes til å skrive ut matrisen på en formatert måte.

// definere den eksisterende XML -filen
$ xml = "kurs.xml ";
// Les hele innholdet i XML -filen som XML -streng
$ xmldata = file_get_contents ($ xml);
// Konverter XML -strengdata til XML -objekt
$ xmlobject = simplexml_load_string ($ xmldata);
// Konverter XML -objekt til JSON -objekt
$ jsonObject = json_encode ($ xmlobject);
// konvertere json -objekt til et assosiativt utvalg
$ ASSARRAY = JSON_DECODE ($ JsonObject, True);
// Skriv ut strukturen til det assosiative matrisen
ekko "

";
print_r ($ assarray);
ekko "

";
?>

Produksjon:

Følgende utgang vises etter å ha utført PHP -skriptet. Her genereres en todimensjonal matrise basert på innholdet i XML-filen, Courses.XML.

Eksempel-2: Konverter XML-filinnhold til et assosiativt utvalg med sjekkfeil

Det er bedre å sjekke feil når du konverterer XML til et assosiativt utvalg. Det vil hjelpe koderen til å feilsøke koden hvis feilkontrollen er implementert i skriptet. Følgende skript viser måtene å konvertere XML -filinnhold til et assosiativt utvalg ved å bruke simplexml_load_file () -funksjon med feilhåndtering. Libxml_use_internal_errors () -funksjonen brukes med ekte verdi for å aktivere feilhåndtering. Hvis XML -filinnholdet som brukes i skriptet inneholder en hvilken. Hvis det ikke eksisterer feil i XML-filen, vil innholdet i filen konvertere riktig til et todimensjonalt assosiativt utvalg.

// Aktiver håndtering av brukerfeil
libxml_use_internal_errors (true);
// Opprett XML -objekt
$ objxml = simplexml_load_file ("kurs.xml ");
// Skriv ut feil hvis XML -objektet returnerer falsk
if ($ objxml === falsk)
ekko "Det var feil som analyserer XML -filen.\ n ";
foreach (libxml_get_errors () som $ feil)
ekko $ feil-> melding;

exit;

// Konverter XML -objekt til JSON -objekt
$ objjson = json_encode ($ objxml);
// konvertere json -objekt til et assosiativt utvalg
$ assarr = json_decode ($ objjson, true);
// Skriv ut strukturen til det assosiative matrisen
ekko "
";
print_r ($ assarr);
ekko "
";
?>

Produksjon:

Følgende utgang vises etter å ha utført PHP -skriptet. Her eksisterer det ingen feil i XML -filen. Så en todimensjonal matrise har generert som det forrige eksemplet basert på innholdet i XML-filen, kurs.XML.

Eksempel-3: Konverter XML-innhold til et assosiativt utvalg

Følgende skript viser måten å konvertere XML -data til et assosiativt utvalg ved å bruke SimpleXMLElement () -funksjonen. I skriptet lagres XML -innholdet i en variabel med navnet $ XML som brukes som argument for funksjonen, simplexmlelement (). Neste, json_encode () og json_decode () -funksjonen brukes til å få det assosiative matrisen etter å ha konvertert XML -filinnholdet.

// definere XML -variabelen
$ xml = <<


[email protected]

12/A, Dhanmondi
Dhaka



[email protected]

156, Motijeel
Dhaka



[email protected]

21/B, Mogbazar
Dhaka



XML;
// Opprett XML -objekt
$ xmlObject = new SimpleXMLElement ($ xml);
// Opprett JSON -objekt
$ jsonObject = json_encode ($ xmlobject);
// konvertere json -objekt til et assosiativt utvalg
$ ASSARRAY = JSON_DECODE ($ JsonObject, True);
// Skriv ut strukturen til det assosiative matrisen
ekko "
";
print_r ($ assarray);
ekko "
";
?>

Produksjon:

Følgende utgang vises etter å ha utført PHP -skriptet. Her genereres en todimensjonal matrise basert på innholdet i XML-variabelen, $ XML.

Konklusjon:

Det var tre forskjellige måter å konvertere XML -innhold til et assosiativt utvalg som ble vist i denne opplæringen. Dette vil hjelpe leserne til å kjenne måten å jobbe med XML -data og analysere dataene fra XML -innholdet ved å bruke et PHP -skript enkelt.