Az XML konvertálása asszociatív tömbré PHP -ben

Convert Xml Associative Array Php



Az XML (Extensible Markup Language) egy olyan típusú jelölőnyelv, amelyet az emberek által olvasható formátumban tárolnak. Ez különbözik a többi jelölési nyelvtől. Ezen a nyelven minden címke felhasználó által definiált. Az XML használata a jobb megoldás kis mennyiségű adat tárolására, ha semmilyen adatbázist nem szeretne használni az adatok tárolására. Az XML dokumentumból származó adatok könnyen elérhetők és használhatók bármilyen webalkalmazásban PHP szkript használatával. Ez az oktatóanyag bemutatja, hogy az XML dokumentum hogyan értelmezhető és tárolható asszociatív tömbbe.

Szükséges funkciók

Néhány beépített függvény az XML tartalom asszociatív PHP tömbré alakítására szolgál. A különböző funkciók céljait az alábbiakban ismertetjük.





file_get_contents ():



Ez a függvény az XML -adatok konvertálásával adja vissza a karakterlánc adatait. Bármilyen XML fájlnevet vesz fel argumentumként.



simplexml_load_string ():





Ez a függvény az XML objektumot az XML karakterlánc adatainak konvertálásával adja vissza. XML karakterlánc adatokat vesz fel argumentumként.

simplexml_load_file ():



Ez a függvény az XML objektumot az XML fájltartalom átalakításával adja vissza. Az XML fájlnevet veszi fel argumentumként.

SimpleXMLElement ():

XML objektumok létrehozására szolgál XML adatokból. Az XML tartalom értékét veszi argumentumként.

json_encode ():

Visszaadja a JSON objektumot az XML objektum átalakításával. Az XML objektumváltozót argumentumnak veszi.

json_decode ():

A JSON adatok konvertálásával visszaadja az asszociatív PHP tömböt. A JSON objektumváltozót érvként veszi fel.

Hozzon létre XML fájlt

Létre kell hoznia egy XML -fájlt, vagy meg kell határoznia az XML -adatokat a szkriptben, hogy megtudja, hogyan lehet az XML -adatokat asszociatív PHP -tömbré konvertálni. Hozzon létre egy tanfolyamok.xml nevű XML -fájlt a következő tartalommal, és tárolja azt a PHP -szkript helyén. A fájl szülőelem alatt gyermek elemeket tartalmaz. Tehát egy kétdimenziós asszociatív tömb generálódik, miután a következő XML fájlt PHP tömbré alakította át.

tanfolyamok.xml

változat='1.0'?>
>
>Web programozás>
>6 hónap>
>
>
>A PHP programozás öröme>
>Alan Forbes>
>Szilva -sziget>
>
>
>PHP& MySQL kezdő ninja
Tom Butler és Kevin Yank
SitePoint


Irány az első PHP és MySQL
Lynn Beighley és Michael Morrison
O'Reilly


1. példa: Az XML-fájlok tartalmának konvertálása asszociatív tömbbe hibaellenőrzés nélkül

A következő parancsfájl a file_get_contents () és a simplexml_load_string () függvények használatát mutatja be XML objektum létrehozásához. Itt a course.xml fájlt használják a korábban létrehozott konvertáláshoz. Ezután a json_encode () és a json_decode () függvényt használjuk az asszociatív tömb lekérésére az XML fájltartalom konvertálása után. Ha nincs hiba az XML tartalomban, akkor a következő szkript nem jelenít meg hibát. Itt, | _+_ | címke a tömb formázott nyomtatására szolgál.



// A meglévő XML fájl definiálása
$ xml = 'course.xml';

// Olvassa el az XML fájl teljes tartalmát XML karakterláncként
$ xmlData = file_get_contents ($ xml);

// XML -karakterlánc -adatok átalakítása XML -objektummá
$ xmlObject = simplexml_load_string ($ xmlData);

// XML objektum átalakítása JSON objektummá
$ jsonObject = json_encode ($ xmlObject);

// A JSON objektum átalakítása asszociatív tömbvé
$ assArray = json_decode ($ jsonObject, igaz);

// Az asszociatív tömb szerkezetének kinyomtatása
kidobta '
  
';

?>

Kimenet:

A PHP parancsfájl végrehajtása után a következő kimenet jelenik meg. Itt kétdimenziós tömb jön létre az XML fájl, course.xml tartalma alapján.

2. példa: Az XML-fájl tartalmának átalakítása asszociatív tömbré ellenőrzési hibával

Jobb ellenőrizni a hibát, amikor az XML -t asszociatív tömbré alakítja. Segít a kódolónak a kód hibakeresésében, ha a hibaellenőrzést végrehajtja a szkriptben. A következő parancsfájl bemutatja az XML fájltartalom asszociatív tömbvé alakításának módját a simplexml_load_file () függvény használatával, hibakezeléssel. A libxml_use_internal_errors () függvényt IGAZ értékkel használják a hibakezelés engedélyezéséhez. Ha a szkriptben használt XML -fájl tartalma hibát tartalmaz, akkor a simplexml_load_file () függvény hamis értéket ad vissza, és a hibaüzenet a libxml_get_errors () függvény használatával lesz kinyomtatva. Ha nincs hiba az XML fájlban, akkor a fájl tartalma megfelelően átalakul kétdimenziós asszociatív tömbré.



// Felhasználói hibakezelés engedélyezése
libxml_use_internal_errors (IGAZ);

// XML objektum létrehozása
$ objXml = simplexml_load_file ('course.xml');

// Nyomtatási hiba, ha az XML objektum hamis értéket ad vissza
ha ($ objXml === HAMIS) {
kidobta 'Hiba történt az XML fájl elemzésekor. n';
az egyes( libxml_get_errors () mint $ hiba) {
kidobta $ hiba->üzenet;
}
kijárat ;
}

// XML objektum átalakítása JSON objektummá
$ objJson = json_encode ($ objXml);
// A JSON objektum átalakítása asszociatív tömbvé
$ assarr = json_decode ($ objJson, IGAZ);

// Az asszociatív tömb szerkezetének kinyomtatása
kidobta '
';  
print_r ($assArray);
echo '
'
;

?>

Kimenet:

A PHP parancsfájl végrehajtása után a következő kimenet jelenik meg. Itt nincs hiba az XML fájlban. Tehát az előző példához hasonlóan kétdimenziós tömb keletkezett az XML fájl, a course.xml tartalma alapján.

3. példa: Az XML-tartalom asszociatív tömbvé alakítása

A következő parancsfájl bemutatja az XML -adatok asszociatív tömbré alakításának módját a SimpleXMLElement () függvény használatával. A szkriptben az XML tartalom a $ xml nevű változóba kerül, amelyet a SimpleXMLElement () függvény argumentumaként használnak. Ezután a json_encode () és a json_decode () függvényt használjuk az asszociatív tömb lekérésére az XML fájltartalom konvertálása után.



// Definiálja az XML változót
$ xml = <<


[e -mail védett]

12 / A, Dhanmondi
Dhaka



[e -mail védett]

156, Motiv
Dhaka



[e -mail védett]

21 / B, Mogbazár
Dhaka



XML
;

// XML objektum létrehozása
$ xmlObject = újSimpleXMLElement($ xml);
// JSON objektum létrehozása
$ jsonObject = json_encode ($ xmlObject);
// A JSON objektum átalakítása asszociatív tömbvé
$ assArray = json_decode ($ jsonObject, igaz);

// Az asszociatív tömb szerkezetének kinyomtatása
kidobta '
';  
print_r ($assarr);
echo '
'
;

?>

Kimenet:

A PHP parancsfájl végrehajtása után a következő kimenet jelenik meg. Itt egy kétdimenziós tömb jön létre az XML változó $ xml tartalma alapján.

Következtetés:

Az oktatóanyagban három különböző módon lehetett az XML -tartalmat asszociatív tömbré alakítani. Ez segíteni fogja az olvasókat abban, hogy megismerjék az XML -adatokkal való munkavégzés módját, és elemezzék az adatokat az XML -tartalomból egy PHP -szkript segítségével.