Konvertuokite XML į asociatyvųjį masyvą PHP

Convert Xml Associative Array Php



XML (išplėstinė žymėjimo kalba) yra viena žymėjimo kalbos rūšis, naudojama duomenims saugoti žmonėms suprantamu formatu. Tai skiriasi nuo kitų žymėjimo kalbų. Kiekviena šios kalbos žyma yra vartotojo apibrėžta. XML naudojimas yra geresnis sprendimas nedideliam duomenų kiekiui saugoti, kai nenorite naudoti jokios duomenų bazės duomenims saugoti. XML dokumento duomenis galima lengvai pasiekti ir naudoti bet kurioje žiniatinklio programoje, naudojant PHP scenarijų. Šiame vadove parodyta, kaip XML dokumentą galima išanalizuoti ir išsaugoti asociaciniame masyve.

Būtinos funkcijos

Kai kurios integruotos funkcijos naudojamos XML turiniui konvertuoti į asociatyvų PHP masyvą. Toliau paaiškinami įvairių funkcijų tikslai.







file_get_contents ():



Ši funkcija grąžina eilutės duomenis konvertuodama bet kokius XML duomenis. Kaip argumentas imamas bet koks XML failo pavadinimas.



simplexml_load_string ():





Ši funkcija grąžina XML objektą konvertuodama XML eilutės duomenis. XML eilutės duomenys naudojami kaip argumentas.

simplexml_load_file ():



Ši funkcija grąžina XML objektą konvertuodama XML failo turinį. XML failo pavadinimas laikomas argumentu.

SimpleXMLElement ():

Jis naudojamas XML objektui sukurti iš XML duomenų. XML turinio reikšmė naudojama kaip argumentas.

json_encode ():

Jis grąžina JSON objektą konvertuodamas XML objektą. Kaip argumentą jis naudoja XML objekto kintamąjį.

json_decode ():

Jis grąžina asociatyvų PHP masyvą konvertuodamas JSON duomenis. JSON objekto kintamasis laikomas argumentu.

Sukurkite XML failą

Jums reikės sukurti XML failą arba apibrėžti XML duomenis scenarijuje, kad žinotumėte, kaip XML duomenis paversti asociatyviu PHP masyvu. Sukurkite XML failą pavadinimu course.xml su šiuo turiniu ir išsaugokite jį toje vietoje, kur yra PHP scenarijus. Faile yra pirminių elementų antrinių elementų. Taigi, pakeitus šį XML failą į PHP masyvą, bus sukurtas dvimatis asociatyvus masyvas.

kursai.xml

versija=„1.0“?>
>
>Interneto programavimas>
>6 mėnesiai>
>
>
>PHP programavimo džiaugsmas>
>Alanas Forbesas>
>Slyvų sala>
>
>
>PHP& „MySQL“ naujokas „Ninja“
Tomas Butleris ir Kevinas Yankas
„SitePoint“


Pirmas vadovas PHP ir MySQL
Lynn Beighley ir Michaelas Morrisonas
O'Reilly


1 pavyzdys: konvertuokite XML failo turinį į asociatyvų masyvą, netikrindami klaidos

Toliau pateiktame scenarijuje parodytos failo_get_contents () ir simplexml_load_string () funkcijos, naudojamos XML objektui sukurti. Čia konvertavimui naudojamas failas course.xml, kuris buvo sukurtas anksčiau. Toliau funkcijos json_encode () ir json_decode () naudojamos norint gauti asociatyvų masyvą po XML failo turinio konvertavimo. Jei XML turinyje nėra klaidų, toliau pateiktame scenarijuje nebus rodoma jokia klaida. Čia, | _+_ | žyma naudojama masyvui spausdinti formatu.



// Apibrėžkite esamą XML failą
$ xml = 'course.xml';

// Perskaitykite visą XML failo turinį kaip XML eilutę
$ xmlDuomenys = file_get_contents ($ xml);

// Konvertuoti XML eilutės duomenis į XML objektą
$ xmlObject = simplexml_load_string ($ xmlDuomenys);

// Konvertuoti XML objektą į JSON objektą
$ jsonObject = json_encode ($ xmlObject);

// Konvertuokite JSON objektą į asociatyvų masyvą
$ assArray = json_decode ($ jsonObject, tiesa);

// Atspausdinti asociatyvinio masyvo struktūrą
išmetė '
  
';

?>

Išėjimas:

Įvykdžius PHP scenarijų, pasirodys toks rezultatas. Čia sukuriamas dvimatis masyvas, pagrįstas XML failo, course.xml, turiniu.

2 pavyzdys: konvertuokite XML failo turinį į asociatyvų masyvą su tikrinimo klaida

Geriau patikrinti klaidą konvertuojant XML į asociatyvų masyvą. Tai padės koduotojui derinti kodą, jei scenarijus įgyvendins klaidų tikrinimą. Šis scenarijus parodo būdus, kaip XML failo turinį paversti asociatyviu masyvu, naudojant funkciją simplexml_load_file () su klaidų tvarkymu. Funkcija libxml_use_internal_errors () naudojama su TRUE reikšme, kad būtų galima tvarkyti klaidas. Jei scenarijuje naudojamas XML failo turinys turi klaidų, funkcija simplexml_load_file () grąžins klaidingą, o klaidos pranešimas bus atspausdintas naudojant funkciją libxml_get_errors (). Jei XML faile nėra klaidos, failo turinys bus tinkamai konvertuotas į dvimatį asociatyvų masyvą.



// Įgalinti vartotojo klaidų tvarkymą
libxml_use_internal_errors (TIESA);

// Sukurti XML objektą
$ objXml = simplexml_load_file ('course.xml');

// Spausdinimo klaida, jei XML objektas pateikia klaidingą
jei ($ objXml === NETIESA) {
išmetė Analizuojant XML failą įvyko klaidų. n';
kiekvienam( libxml_get_errors () kaip $ klaida) {
išmetė $ klaida->pranešimą;
}
išeiti ;
}

// Konvertuoti XML objektą į JSON objektą
$ objJson = json_encode ($ objXml);
// Konvertuokite JSON objektą į asociatyvų masyvą
$ assarr = json_decode ($ objJson, TIESA);

// Atspausdinti asociatyvinio masyvo struktūrą
išmetė '
';  
print_r ($assArray);
echo '
'
;

?>

Išėjimas:

Įvykdžius PHP scenarijų, pasirodys toks rezultatas. Čia XML faile nėra klaidų. Taigi, kaip ir ankstesnis pavyzdys, buvo sukurtas dvimatis masyvas, pagrįstas XML failo, course.xml, turiniu.

3 pavyzdys: konvertuokite XML turinį į asociatyvų masyvą

Šis scenarijus parodo XML duomenų konvertavimo į asociatyvų masyvą būdą naudojant funkciją „SimpleXMLElement ()“. Scenarijuje XML turinys saugomas kintamajame, pavadintame $ xml, kuris naudojamas kaip funkcijos SimpleXMLElement () argumentas. Toliau funkcijos json_encode () ir json_decode () naudojamos norint gauti asociatyvų masyvą po XML failo turinio konvertavimo.



// Apibrėžkite XML kintamąjį
$ xml = <<


[apsaugotas el. paštas]

12 / A, Dhanmondi
Daka



[apsaugotas el. paštas]

156, motyvas
Daka



[apsaugotas el. paštas]

21 / B, Mogbazaras
Daka



XML
;

// Sukurti XML objektą
$ xmlObject = naujas„SimpleXMLElement“($ xml);
// Sukurti JSON objektą
$ jsonObject = json_encode ($ xmlObject);
// Konvertuokite JSON objektą į asociatyvų masyvą
$ assArray = json_decode ($ jsonObject, tiesa);

// Atspausdinti asociatyvinio masyvo struktūrą
išmetė '
';  
print_r ($assarr);
echo '
'
;

?>

Išėjimas:

Įvykdžius PHP scenarijų, pasirodys toks rezultatas. Čia sukuriamas dvimatis masyvas, pagrįstas XML kintamojo $ xml turiniu.

Išvada:

Šioje pamokoje buvo parodyti trys skirtingi XML turinio konvertavimo į asociatyvų masyvą būdai. Tai padės skaitytojams žinoti, kaip dirbti su XML duomenimis, ir lengvai išanalizuoti XML turinio duomenis naudojant PHP scenarijų.