Pārvērst XML uz asociatīvo masīvu PHP

Convert Xml Associative Array Php



XML (paplašināmā iezīmēšanas valoda) ir viena veida iezīmēšanas valoda, ko izmanto, lai uzglabātu datus cilvēkam lasāmā formātā. Tas atšķiras no citām iezīmēšanas valodām. Katru šīs valodas tagu nosaka lietotājs. XML izmantošana ir labāks risinājums, lai saglabātu nelielu datu apjomu, ja nevēlaties datu glabāšanai izmantot nevienu datu bāzi. XML dokumenta datiem var viegli piekļūt un tos izmantot jebkurā tīmekļa lietojumprogrammā, izmantojot PHP skriptu. Šajā apmācībā ir parādīts, kā XML dokumentu var parsēt un saglabāt asociatīvā masīvā.

Nepieciešamās funkcijas

Dažas iebūvētās funkcijas tiek izmantotas, lai XML saturu pārvērstu asociatīvā PHP masīvā. Zemāk ir izskaidroti dažādu funkciju mērķi.







file_get_contents ():



Šī funkcija atgriež virknes datus, konvertējot visus XML datus. Jebkurš XML faila nosaukums tiek ņemts par argumentu.



simplexml_load_string ():





Šī funkcija atgriež XML objektu, konvertējot XML virknes datus. Kā arguments tiek ņemti XML virkņu dati.

simplexml_load_file ():



Šī funkcija atgriež XML objektu, pārveidojot XML faila saturu. Kā arguments tiek ņemts XML faila nosaukums.

SimpleXMLElement():

To izmanto, lai no XML datiem izveidotu XML objektu. Tā kā argumentu ņem XML satura vērtību.

json_encode ():

Tas atgriež JSON objektu, pārveidojot XML objektu. Tā kā argumentu ņem XML objekta mainīgo.

json_decode ():

Tas atgriež asociatīvo PHP masīvu, pārveidojot JSON datus. Tas kā argumentu ņem JSON objekta mainīgo.

Izveidojiet XML failu

Jums būs jāizveido XML fails vai skriptā jādefinē XML dati, lai zinātu, kā XML datus pārvērst asociatīvā PHP masīvā. Izveidojiet XML failu ar nosaukumu course.xml ar šādu saturu un saglabājiet to vietā, kur atrodas PHP skripts. Fails satur pakārtotus elementus zem vecāka elementa. Tātad divdimensiju asociatīvais masīvs tiks ģenerēts pēc šāda XML faila pārvēršanas PHP masīvā.

kursi.xml

versija='1.0'?>
>
>Tīmekļa programmēšana>
>6 mēneši>
>
>
>PHP programmēšanas prieks>
>Alans Forbes>
>Plūmju sala>
>
>
>PHP& MySQL iesācējs nindzjai
Toms Batlers un Kevins Janks
SitePoint


Vispirms dodieties uz PHP un MySQL
Līna Bīblija un Maikls Morisons
O'Railijs


1. piemērs: pārveidojiet XML faila saturu asociatīvā masīvā, nepārbaudot kļūdu

Šis skripts parāda failu_get_contents () un simplexml_load_string () funkciju izmantošanu, lai izveidotu XML objektu. Šeit konvertēšanai tiek izmantots fails course.xml, kas tika izveidots iepriekš. Tālāk funkcijas json_encode () un json_decode () tiek izmantotas, lai pēc XML faila satura konvertēšanas iegūtu asociatīvo masīvu. Ja XML saturā nav kļūdu, tad šāds skripts neparādīs nevienu kļūdu. Šeit, | _+_ | tagu izmanto, lai formatētu masīvu drukātu.



// Definējiet esošo XML failu
$ xml = 'course.xml';

// Lasiet visu XML faila saturu kā XML virkni
$ xmlDati = file_get_contents ($ xml);

// Pārvērst XML virknes datus XML objektā
$ xmlObject = simplexml_load_string ($ xmlDati);

// Pārvērst XML objektu par JSON objektu
$ jsonObject = json_encode ($ xmlObject);

// Pārvērst JSON objektu asociatīvā masīvā
$ assArray = json_decode ($ jsonObject, taisnība);

// Izdrukāt asociatīvā masīva struktūru
izmest ārā '
  
';

?>

Izeja:

Pēc PHP skripta izpildes parādīsies šāda izvade. Šeit tiek ģenerēts divdimensiju masīvs, pamatojoties uz XML faila, course.xml, saturu.

2. piemērs: pārveidojiet XML faila saturu asociatīvā masīvā ar pārbaudes kļūdu

Labāk ir pārbaudīt kļūdu, pārveidojot XML par asociatīvu masīvu. Tas palīdzēs kodētājam atkļūdot kodu, ja skriptā tiek ieviesta kļūdu pārbaude. Šis skripts parāda veidus, kā XML failu saturu pārvērst asociatīvā masīvā, izmantojot funkciju simplexml_load_file () ar kļūdu apstrādi. Funkcija libxml_use_internal_errors () tiek izmantota ar vērtību TRUE, lai iespējotu kļūdu apstrādi. Ja skriptā izmantotajā XML faila saturā ir kāda kļūda, funkcija simplexml_load_file () atgriež nepatiesu, un kļūdas ziņojums tiks izdrukāts, izmantojot funkciju libxml_get_errors (). Ja XML failā nav kļūdu, tad faila saturs tiks pareizi pārveidots par divdimensiju asociatīvo masīvu.



// Iespējot lietotāja kļūdu apstrādi
libxml_use_internal_errors (PATIESA);

// Izveidot XML objektu
$ objXml = simplexml_load_file ('course.xml');

// Drukas kļūda, ja XML objekts atgriež nepatiesu
ja ($ objXml === FALSE) {
izmest ārā Analizējot XML failu, radās kļūdas. n';
katram( libxml_get_errors () $ kļūda) {
izmest ārā $ kļūda->ziņu;
}
Izeja ;
}

// Pārvērst XML objektu par JSON objektu
$ objJson = json_encode ($ objXml);
// Pārvērst JSON objektu asociatīvā masīvā
$ assarr = json_decode ($ objJson, PATIESA);

// Izdrukāt asociatīvā masīva struktūru
izmest ārā '
';  
print_r ($assArray);
echo '
'
;

?>

Izeja:

Pēc PHP skripta izpildes parādīsies šāda izvade. Šeit XML failā nav kļūdu. Tātad divdimensiju masīvs ir ģenerēts tāpat kā iepriekšējais piemērs, pamatojoties uz XML faila, course.xml, saturu.

3. piemērs: pārveidojiet XML saturu asociatīvā masīvā

Šis skripts parāda veidu, kā XML datus pārvērst asociatīvā masīvā, izmantojot funkciju SimpleXMLElement (). Skriptā XML saturs tiek saglabāts mainīgajā ar nosaukumu $ xml, kas tiek izmantots kā funkcijas SimpleXMLElement () arguments. Tālāk funkcijas json_encode () un json_decode () tiek izmantotas, lai pēc XML faila satura konvertēšanas iegūtu asociatīvo masīvu.



// Definējiet XML mainīgo
$ xml = <<


[e -pasts aizsargāts]

12 / A, Dhanmondi
Daka



[e -pasts aizsargāts]

156, Motīvs
Daka



[e -pasts aizsargāts]

21 / B, Mogbazar
Daka



XML
;

// Izveidot XML objektu
$ xmlObject = jaunsSimpleXMLElement($ xml);
// Izveidot JSON objektu
$ jsonObject = json_encode ($ xmlObject);
// Pārvērst JSON objektu asociatīvā masīvā
$ assArray = json_decode ($ jsonObject, taisnība);

// Izdrukāt asociatīvā masīva struktūru
izmest ārā '
';  
print_r ($assarr);
echo '
'
;

?>

Izeja:

Pēc PHP skripta izpildes parādīsies šāda izvade. Šeit tiek ģenerēts divdimensiju masīvs, pamatojoties uz XML mainīgā $ xml saturu.

Secinājums:

Šajā apmācībā tika parādīti trīs dažādi veidi, kā XML saturu pārvērst asociatīvā masīvā. Tas palīdzēs lasītājiem uzzināt veidu, kā strādāt ar XML datiem, un parsēt datus no XML satura, viegli izmantojot PHP skriptu.