Pretvorite XML u pridruženi niz u PHP -u

Convert Xml Associative Array Php



XML (Extensible Markup Language) je jedna vrsta jezika označavanja koji se koristi za spremanje podataka u formatu čitljivom za ljude. Razlikuje se od ostalih jezika za označavanje. Svaku oznaku ovog jezika definira korisnik. Korištenje XML -a bolje je rješenje za pohranu male količine podataka ako ne želite koristiti nikakvu bazu podataka za spremanje podataka. Podaci iz XML dokumenta mogu se lako pristupiti i koristiti u bilo kojoj web aplikaciji pomoću PHP skripte. U ovom vodiču prikazano je kako se XML dokument može raščlaniti i pohraniti u asocijativni niz.

Potrebne funkcije

Neke ugrađene funkcije koriste se za pretvaranje XML sadržaja u asocijativni PHP niz. Dolje su objašnjene svrhe različitih funkcija.







file_get_contents ():



Ova funkcija vraća podatke niza pretvaranjem bilo kojih XML podataka. Kao argument uzima bilo koji naziv XML datoteke.



simplexml_load_string ():





Ova funkcija vraća XML objekt pretvaranjem podataka XML niza. Kao argument uzima podatke XML niza.

simplexml_load_file ():



Ova funkcija vraća XML objekt pretvaranjem sadržaja XML datoteke. Ime XML datoteke uzima kao argument.

SimpleXMLElement ():

Koristi se za stvaranje XML objekta iz XML podataka. Vrijednost XML sadržaja uzima kao argument.

json_encode ():

Vraća JSON objekt pretvaranjem XML objekta. Za argument uzima XML objektnu varijablu.

json_decode ():

Vraća asocijativni PHP niz pretvaranjem JSON podataka. Za argument uzima varijablu objekta JSON.

Napravite XML datoteku

Morat ćete stvoriti XML datoteku ili definirati XML podatke u skripti da biste znali način pretvaranja XML podataka u asocijativni PHP niz. Napravite XML datoteku pod nazivom courses.xml sa sljedećim sadržajem i spremite je na mjesto gdje se nalazi PHP skripta. Datoteka sadrži podređene elemente pod roditeljskim elementom. Dakle, dvodimenzionalni asocijativni niz generirat će se nakon pretvaranja sljedeće XML datoteke u PHP niz.

tečajevi.xml

verzija='1,0'?>
>
>Web programiranje>
>6 mjeseci>
>
>
>Radost PHP programiranja>
>Alan Forbes>
>Otok šljiva>
>
>
>PHP& MySQL Novice to Ninja
Tom Butler i Kevin Yank
SitePoint


Vodite prvo PHP & MySQL
Lynn Beighley i Michael Morrison
O’Reilly


Primjer-1: Pretvorite sadržaj XML datoteke u asocijativni niz bez pogreške provjere

Sljedeća skripta prikazuje uporabu funkcija file_get_contents () i simplexml_load_string () za stvaranje XML objekta. Ovdje se datoteka courses.xml koristi za konverziju koja je već stvorena. Zatim se funkcije json_encode () i json_decode () koriste za dobivanje asocijativnog niza nakon pretvaranja sadržaja XML datoteke. Ako nema pogreške u XML sadržaju, sljedeća skripta neće prikazati pogrešku. Ovdje, | _+_ | tag se koristi za ispis niza na formatiran način.



// Definiranje postojeće XML datoteke
$ xml = 'tečajevi.xml';

// Pročitajte cijeli sadržaj XML datoteke kao XML niz
$ xmlPodaci = file_get_contents ($ xml);

// Pretvorimo podatke XML niza u XML objekt
$ xmlObject = simplexml_load_string ($ xmlPodaci);

// Pretvorimo XML objekt u JSON objekt
$ jsonObject = json_encode ($ xmlObject);

// Pretvorimo JSON objekt u asocijativni niz
$ assArray = json_decode ($ jsonObject, pravi);

// Ispis strukture asocijativnog niza
izbaciti '
  
';

?>

Izlaz:

Sljedeći izlaz pojavit će se nakon izvršavanja PHP skripte. Ovdje se dvodimenzionalni niz generira na temelju sadržaja XML datoteke, courses.xml.

Primjer 2: Pretvorite sadržaj XML datoteke u asocijativni niz s pogreškom provjere

Bolje je provjeriti pogrešku prilikom pretvaranja XML -a u asocijativni niz. Kodiraču će pomoći u otklanjanju pogrešaka u kodu ako je provjera pogrešaka implementirana u skriptu. Sljedeća skripta prikazuje načine pretvaranja sadržaja XML datoteke u asocijativni niz pomoću funkcije simplexml_load_file () s rukovanjem pogreškama. Funkcija libxml_use_internal_errors () koristi se s TRUE vrijednošću za omogućavanje obrade pogrešaka. Ako sadržaj XML datoteke koji se koristi u skripti sadrži bilo koju pogrešku, funkcija simplexml_load_file () vratit će vrijednost false, a poruka o pogrešci ispisat će se pomoću funkcije libxml_get_errors (). Ako nema pogreške u XML datoteci, tada će se sadržaj datoteke ispravno pretvoriti u dvodimenzionalni asocijativni niz.



// Omogućivanje rukovanja pogreškama korisnika
libxml_use_internal_errors (PRAVI);

// Stvaranje XML objekta
$ objXml = simplexml_load_file ('tečajevi.xml');

// Pogreška ispisa ako XML objekt vraća vrijednost false
ako ($ objXml === LAŽNO) {
izbaciti 'Došlo je do pogrešaka pri raščlanjivanju XML datoteke. n';
za svakoga( libxml_get_errors () kao $ pogreška) {
izbaciti $ pogreška->poruka;
}
Izlaz ;
}

// Pretvorimo XML objekt u JSON objekt
$ objJson = json_encode ($ objXml);
// Pretvorimo JSON objekt u asocijativni niz
$ assarr = json_decode ($ objJson, PRAVI);

// Ispis strukture asocijativnog niza
izbaciti '
';  
print_r ($assArray);
echo '
'
;

?>

Izlaz:

Sljedeći izlaz pojavit će se nakon izvršavanja PHP skripte. Ovdje nema pogreške u XML datoteci. Dakle, dvodimenzionalni niz je generirao kao i prethodni primjer na temelju sadržaja XML datoteke, courses.xml.

Primjer-3: Pretvorite XML sadržaj u asocijativni niz

Sljedeća skripta prikazuje način pretvaranja XML podataka u asocijativni niz pomoću funkcije SimpleXMLElement (). U skripti se XML sadržaj pohranjuje u varijablu pod nazivom $ xml koja se koristi kao argument funkcije, SimpleXMLElement (). Zatim se funkcije json_encode () i json_decode () koriste za dobivanje asocijativnog niza nakon pretvaranja sadržaja XML datoteke.



// Definiranje XML varijable
$ xml = <<


[zaštićena e -pošta]

12 / A, Dhanmondi
Daka



[zaštićena e -pošta]

156, Motiv
Daka



[zaštićena e -pošta]

21 / B, Mogbazar
Daka



XML
;

// Stvaranje XML objekta
$ xmlObject = noviSimpleXMLElement($ xml);
// Stvaranje JSON objekta
$ jsonObject = json_encode ($ xmlObject);
// Pretvorimo JSON objekt u asocijativni niz
$ assArray = json_decode ($ jsonObject, pravi);

// Ispis strukture asocijativnog niza
izbaciti '
';  
print_r ($assarr);
echo '
'
;

?>

Izlaz:

Sljedeći izlaz pojavit će se nakon izvršavanja PHP skripte. Ovdje se dvodimenzionalni niz generira na temelju sadržaja XML varijable, $ xml.

Zaključak:

Postoje tri različita načina pretvaranja XML sadržaja u asocijativni niz koji su prikazani u ovom vodiču. To će čitateljima pomoći da znaju način rada s XML podacima i raščlane podatke iz XML sadržaja pomoću jednostavne PHP skripte.