Pretvorite XML v asociativni niz v PHP

Convert Xml Associative Array Php



XML (razširljiv označevalni jezik) je ena vrsta označevalnega jezika, ki se uporablja za shranjevanje podatkov v obliki, ki je berljiva za ljudi. Razlikuje se od drugih označevalnih jezikov. Vsako oznako tega jezika določi uporabnik. Uporaba XML je boljša rešitev za shranjevanje majhne količine podatkov, če za shranjevanje podatkov ne želite uporabiti nobene baze podatkov. Do podatkov iz dokumenta XML lahko preprosto dostopate in jih uporabite v kateri koli spletni aplikaciji s skriptom PHP. V tem vodiču je prikazano, kako je mogoče dokument XML razčleniti in shraniti v asociativno matriko.

Nujne funkcije

Nekatere vgrajene funkcije se uporabljajo za pretvorbo vsebine XML v asociativno matriko PHP. V nadaljevanju so razloženi nameni različnih funkcij.







file_get_contents ():



Ta funkcija vrne podatke niza s pretvorbo poljubnih podatkov XML. Za argument vzame katero koli ime datoteke XML.



simplexml_load_string ():





Ta funkcija vrne predmet XML s pretvorbo podatkov niza XML. Za argument vzame podatke niza XML.

simplexml_load_file ():



Ta funkcija vrne predmet XML s pretvorbo vsebine datoteke XML. Ime datoteke XML vzame kot argument.

SimpleXMLElement ():

Uporablja se za ustvarjanje predmeta XML iz podatkov XML. Vrednost vsebine XML jemlje kot argument.

json_encode ():

Vrne objekt JSON s pretvorbo predmeta XML. Za argument vzame spremenljivko objekta XML.

json_decode ():

Vrne asociativno matriko PHP s pretvorbo podatkov JSON. Za argument vzame spremenljivko objekta JSON.

Ustvarite datoteko XML

Če želite poznati način pretvorbe podatkov XML v asociativno matriko PHP, boste morali ustvariti datoteko XML ali definirati podatke XML v skriptu. Ustvarite datoteko XML courses.xml z naslednjo vsebino in jo shranite na mesto, kjer je skript PHP. Datoteka vsebuje podrejene elemente pod nadrejenim elementom. Tako bo po pretvorbi naslednje datoteke XML v matriko PHP nastala dvodimenzionalna asociativna matrika.

tečaji.xml

različico='1,0'?>
>
>Spletno programiranje>
>6 mesecev>
>
>
>Veselje programiranja PHP>
>Alan Forbes>
>Plum Island>
>
>
>PHP& MySQL Novice to Ninja
Tom Butler in Kevin Yank
SitePoint


Najprej pojdite na PHP in MySQL
Lynn Beighley in Michael Morrison
O’Reilly


Primer-1: Pretvorite vsebino datoteke XML v asociativno polje brez preverjanja napake

Naslednji skript prikazuje uporabo funkcij file_get_contents () in simplexml_load_string () za ustvarjanje predmeta XML. Tukaj se datoteka courses.xml uporablja za pretvorbo, ki je bila ustvarjena že prej. Nato se funkciji json_encode () in json_decode () uporabita za pridobitev asociativne matrike po pretvorbi vsebine datoteke XML. Če v vsebini XML ni napake, potem naslednji skript ne prikaže nobene napake. Tukaj, | _+_ | tag se uporablja za tiskanje matrike na formatiran način.



// Določimo obstoječo datoteko XML
$ xml = 'tečaji.xml';

// Preberite celotno vsebino datoteke XML kot niz XML
$ xmlPodatki = file_get_contents ($ xml);

// Pretvorimo podatke niza XML v objekt XML
$ xmlObject = simplexml_load_string ($ xmlPodatki);

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

// Pretvorimo objekt JSON v asociativno matriko
$ assArray = json_decode ($ jsonObject, prav);

// Natisni strukturo asociativne matrike
vrgel ven '
  
';

?>

Izhod:

Po izvedbi skripta PHP se prikaže naslednji izhod. Tu se na podlagi vsebine datoteke XML, courses.xml, ustvari dvodimenzionalna matrika.

Primer 2: Pretvorite vsebino datoteke XML v asociativno polje z napako pri preverjanju

Pri pretvorbi XML v asociativno matriko je bolje preveriti napako. Kodirniku bo v pomoč pri odpravljanju napak v kodi, če je v skriptu izvedeno preverjanje napak. Naslednji skript prikazuje načine pretvorbe vsebine datoteke XML v asociativno polje z uporabo funkcije simplexml_load_file () z obravnavo napak. Funkcija libxml_use_internal_errors () se uporablja z vrednostjo TRUE za omogočanje obravnave napak. Če vsebina datoteke XML, ki se uporablja v skriptu, vsebuje napako, bo funkcija simplexml_load_file () vrnila false, sporočilo o napaki pa bo natisnjeno s funkcijo libxml_get_errors (). Če v datoteki XML ni napake, se bo vsebina datoteke pravilno pretvorila v dvodimenzionalno asociativno matriko.



// Omogoči obravnavo napak uporabnikov
libxml_use_internal_errors (PRAV);

// Ustvarjanje predmeta XML
$objXml = simplexml_load_file ('tečaji.xml');

// Napaka pri tiskanju, če objekt XML vrne false
če ($objXml === LAŽNO) {
vrgel ven 'Pri razčlenitvi datoteke XML je prišlo do napak. n';
za vsakogar( libxml_get_errors () kot $ error) {
vrgel ven $ error->sporočilo;
}
izhod ;
}

// Pretvorimo predmet XML v objekt JSON
$ objJson = json_encode ($objXml);
// Pretvorimo objekt JSON v asociativno matriko
$ assarr = json_decode ($ objJson, PRAV);

// Natisni strukturo asociativne matrike
vrgel ven '
';  
print_r ($assArray);
echo '
'
;

?>

Izhod:

Po izvedbi skripta PHP se prikaže naslednji izhod. Tukaj v datoteki XML ni napak. Tako je na podlagi vsebine datoteke XML, courses.xml, na podlagi vsebine datoteke XML nastala dvodimenzionalna matrika.

Primer 3: Pretvorite vsebino XML v asociativno matriko

Naslednji skript prikazuje način pretvorbe podatkov XML v asociativno polje z uporabo funkcije SimpleXMLElement (). V skriptu je vsebina XML shranjena v spremenljivko z imenom $ xml, ki se uporablja kot argument funkcije SimpleXMLElement (). Nato se funkciji json_encode () in json_decode () uporabita za pridobitev asociativne matrike po pretvorbi vsebine datoteke XML.



// Določimo spremenljivko XML
$ xml = <<


[zaščiteno po e -pošti]

12 / A, Dhanmondi
Daka



[zaščiteno po e -pošti]

156, Motiv
Daka



[zaščiteno po e -pošti]

21 / B, Mogbazar
Daka



XML
;

// Ustvarjanje predmeta XML
$ xmlObject = novSimpleXMLElement($ xml);
// Ustvari objekt JSON
$ jsonObject = json_encode ($ xmlObject);
// Pretvorimo objekt JSON v asociativno matriko
$ assArray = json_decode ($ jsonObject, prav);

// Natisni strukturo asociativne matrike
vrgel ven '
';  
print_r ($assarr);
echo '
'
;

?>

Izhod:

Po izvedbi skripta PHP se prikaže naslednji izhod. Tu se na podlagi vsebine spremenljivke XML, $ xml, ustvari dvodimenzionalna matrika.

Zaključek:

V tej vadnici so bili prikazani trije različni načini pretvorbe vsebine XML v asociativno matriko. To bo bralcem pomagalo spoznati način dela s podatki XML in razčleniti podatke iz vsebine XML z enostavno uporabo skripta PHP.