XML (Extensible Markup Language) er en type markeringsspråk som brukes til å lagre dataene i et lesbart format for mennesker. Det er forskjellig fra andre markeringsspråk. Hver kode 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 å lagre data. Dataene fra XML -dokumentet kan lett nås og brukes i alle webapplikasjoner ved hjelp av et PHP -skript. Hvordan XML -dokumentet kan analyseres og lagres i en assosiativ matrise, er vist i denne opplæringen.
Nødvendige funksjoner
Noen innebygde funksjoner brukes til å konvertere XML-innholdet til en assosiativ PHP-matrise. Formålet med de forskjellige funksjonene er forklart nedenfor.
file_get_contents ():
Denne funksjonen returnerer strengdataene ved å konvertere XML -data. Det tar et hvilket som helst 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 ():
Den brukes til å lage et XML -objekt fra XML -data. Det tar XML -innholdsverdien som et argument.
json_encode ():
Det returnerer JSON -objektet ved å konvertere XML -objektet. Den tar XML -objektvariabelen som et argument.
json_decode ():
Det returnerer det assosiative PHP -arrayet ved å konvertere JSON -data. Den tar JSON -objektvariabelen som et argument.
Lag XML -fil
Du må opprette en XML -fil eller definere XML -data i skriptet for å vite hvordan du konverterer XML -data til en assosiativ PHP -matrise. Lag en XML -fil som heter courses.xml med følgende innhold og lagre den på stedet der PHP -skriptet er. Filen inneholder underordnede elementer under et overordnet element. Så vil en todimensjonal assosiativ matrise generere etter konvertering av følgende XML-fil til en PHP-matrise.
kurs. xml
versjon='1.0'?>>
Tom Butler og Kevin Yank
SitePoint
Leder først PHP & MySQL
Lynn Beighley og Michael Morrison
O'Reilly
Eksempel-1: Konverter XML-filinnhold til en assosiativ matrise uten å sjekke feil
Følgende skript viser bruken av funksjonene file_get_contents () og simplexml_load_string () for å lage XML -objekt. Her brukes cursus.xml -filen for konvertering som ble opprettet før. Deretter brukes json_encode () og json_decode () -funksjonen for å hente det assosiative arrayet etter å ha konvertert XML -filinnholdet. Hvis det ikke finnes noen feil i XML -innholdet, vises ingen feil med følgende skript. Her, | _+_ | tag brukes til å skrive ut matrisen på en formatert måte.
// Definer den eksisterende XML -filen
$ xml = 'courses.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);
// Konverter JSON -objekt til en assosiativ matrise
$ assArray = json_decode ($ jsonObject, ekte);
// Skriv ut strukturen til det assosiative matrisen
kastet ut '
';
?>
Produksjon:
Følgende utdata vises etter kjøring av PHP -skriptet. Her genereres en todimensjonal matrise basert på innholdet i XML-filen, courses.xml.
Eksempel-2: Konverter XML-filinnhold til en assosiativ matrise med kontrollfeil
Det er bedre å sjekke feilen når du konverterer XML til en assosiativ matrise. Det vil hjelpe koderen med å feilsøke koden hvis feilkontrollen er implementert i skriptet. Følgende skript viser måter å konvertere XML -filinnhold til en assosiativ matrise ved å bruke simplexml_load_file () -funksjonen med feilhåndtering. Libxml_use_internal_errors () -funksjonen brukes med TRUE -verdi for å aktivere feilhåndteringen. Hvis XML -filinnholdet som brukes i skriptet inneholder noen feil, vil funksjonen simplexml_load_file () returnere usann, og feilmeldingen skrives ut ved hjelp av libxml_get_errors () -funksjonen. Hvis det ikke finnes noen feil i XML-filen, vil innholdet i filen konvertere riktig til en todimensjonal assosiativ matrise.
// Aktiver håndtering av brukerfeil
libxml_use_internal_errors (EKTE);
// Lag XML -objekt
$ objXml = simplexml_load_file ('courses.xml');
// Utskriftsfeil hvis XML -objektet returnerer false
hvis ($ objXml === FALSK) {
kastet ut 'Det oppstod feil ved analyse av XML -filen. n';
for hver( libxml_get_errors () som $ feil) {
kastet ut $ feil->beskjed;
}
exit ;
}
// Konverter XML -objekt til JSON -objekt
$ objJson = json_encode ($ objXml);
// Konverter JSON -objekt til en assosiativ matrise
$ assarr = json_decode ($ objJson, EKTE);
// Skriv ut strukturen til det assosiative matrisen
kastet ut '
';
print_r ($assArray);
echo '';
?>
Produksjon:
Følgende utdata vises etter kjøring av PHP -skriptet. Her finnes det ingen feil i XML -filen. Så, en todimensjonal matrise har generert som det forrige eksemplet basert på innholdet i XML-filen, courses.xml.
Eksempel 3: Konverter XML-innhold til en assosiativ matrise
Følgende skript viser måten å konvertere XML -data til en assosiativ matrise ved å bruke SimpleXMLElement () -funksjonen. I skriptet lagres XML -innholdet i en variabel som heter $ xml som brukes som argument for funksjonen, SimpleXMLElement (). Deretter brukes json_encode () og json_decode () -funksjonen for å hente det assosiative arrayet etter å ha konvertert XML -filinnholdet.
// Definer XML -variabelen
$ xml = <<
[e -postbeskyttet]
12 / A, Dhanmondi
Dhaka
[e -postbeskyttet]
156, Motiv
Dhaka
[e -postbeskyttet]
21 / B, Mogbazar
Dhaka
XML;
// Lag XML -objekt
$ xmlObject = nySimpleXMLElement($ xml);
// Lag JSON -objekt
$ jsonObject = json_encode ($ xmlObject);
// Konverter JSON -objekt til en assosiativ matrise
$ assArray = json_decode ($ jsonObject, ekte);
// Skriv ut strukturen til det assosiative matrisen
kastet ut '
';
print_r ($assarr);
echo '';
?>
Produksjon:
Følgende utdata vises etter kjøring av 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 en assosiativ matrise 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.