Muunna XML assosiatiiviseksi taulukkoksi PHP: ssä

Convert Xml Associative Array Php



XML (Extensible Markup Language) on eräänlainen merkintäkieli, jota käytetään tietojen tallentamiseen ihmisen luettavassa muodossa. Se eroaa muista merkintäkielistä. Jokainen tämän kielen tagi on käyttäjän määrittämä. XML: n käyttö on parempi ratkaisu pienen datamäärän tallentamiseen, kun et halua käyttää mitään tietokantaa tietojen tallentamiseen. XML -asiakirjan tiedot ovat helposti käytettävissä ja niitä voidaan käyttää missä tahansa verkkosovelluksessa PHP -komentosarjan avulla. Tässä opetusohjelmassa esitetään, kuinka XML -asiakirja voidaan jäsentää ja tallentaa assosiatiiviseen taulukkoon.

Tarvittavat toiminnot

Joitakin sisäänrakennettuja toimintoja käytetään XML-sisällön muuntamiseen assosiatiiviseksi PHP-matriisiksi. Eri toimintojen tarkoitukset selitetään alla.







file_get_contents ():



Tämä toiminto palauttaa merkkijonotiedot muuntamalla kaikki XML -tiedot. Se käyttää mitä tahansa XML -tiedoston nimeä argumenttina.



simplexml_load_string ():





Tämä toiminto palauttaa XML -objektin muuntamalla XML -merkkijonotiedot. Se käyttää XML -merkkijonotietoja argumenttina.

simplexml_load_file ():



Tämä toiminto palauttaa XML -objektin muuntamalla XML -tiedoston sisällön. Se käyttää XML -tiedoston nimeä argumenttina.

SimpleXMLElement ():

Sitä käytetään XML -objektin luomiseen XML -tiedoista. Se ottaa XML -sisällön arvon argumenttina.

json_encode ():

Se palauttaa JSON -objektin muuntamalla XML -objektin. Se käyttää XML -objektimuuttujaa argumenttina.

json_decode ():

Se palauttaa assosiatiivisen PHP -taulukon muuntamalla JSON -tietoja. Se käyttää JSON -objektimuuttujaa argumenttina.

Luo XML -tiedosto

Sinun on luotava XML -tiedosto tai määritettävä komentosarjassa XML -tiedot, jotta tiedät tavan muuntaa XML -tiedot yhdistäväksi PHP -matriisiksi. Luo XML -tiedosto, jonka nimi on course.xml ja jossa on seuraava sisältö, ja tallenna se PHP -komentosarjan sijaintiin. Tiedosto sisältää ylätason elementin alaelementtejä. Kaksiulotteinen assosiatiivinen taulukko muodostuu, kun seuraava XML-tiedosto on muunnettu PHP-matriisiksi.

course.xml

versio='1.0'?>
>
>Web -ohjelmointi>
>6 kuukautta>
>
>
>PHP -ohjelmoinnin ilo>
>Alan Forbes>
>Luumu saari>
>
>
>PHP& MySQL Novice Ninjalle
Tom Butler ja Kevin Yank
SitePoint


Päätä ensin PHP ja MySQL
Lynn Beighley ja Michael Morrison
O'Reilly


Esimerkki 1: Muunna XML-tiedostojen sisältö assosiatiiviseksi taulukkoksi tarkistamatta virhettä

Seuraava skripti näyttää file_get_contents () - ja simplexml_load_string () -funktioiden käytön XML -objektin luomiseen. Täällä kursseja.xml -tiedostoa käytetään aiemmin luotuun muuntamiseen. Seuraavaksi json_encode () - ja json_decode () -toimintoa käytetään assosiatiivisen taulukon saamiseen XML -tiedostosisällön muuntamisen jälkeen. Jos XML -sisällössä ei ole virhettä, seuraava skripti ei näytä virheitä. Täällä | _+_ | -tunnistetta käytetään taulukon tulostamiseen muotoilulla tavalla.



// Määritä olemassa oleva XML -tiedosto
$ xml = 'course.xml';

// Lue XML -tiedoston koko sisältö XML -merkkijonona
$ xmlData = file_get_contents ($ xml);

// Muunna XML -merkkijonotiedot XML -objektiksi
$ xmlObject = simplexml_load_string ($ xmlData);

// Muunna XML -objekti JSON -objektiksi
$ jsonObject = json_encode ($ xmlObject);

// Muunna JSON -objekti assosiatiiviseksi matriisiksi
$ assArray = json_decode ($ jsonObject, totta);

// Tulosta assosiatiivisen taulukon rakenne
heitti pois ''
  
'';

?>

Lähtö:

Seuraava tulos tulee näkyviin PHP -komentosarjan suorittamisen jälkeen. Täällä luodaan kaksiulotteinen matriisi XML-tiedoston, course.xml, sisällön perusteella.

Esimerkki 2: Muunna XML-tiedostojen sisältö assosiatiiviseksi taulukkoksi tarkistusvirheen kanssa

On parempi tarkistaa virhe, kun XML muunnetaan assosiatiiviseksi matriisiksi. Se auttaa kooderia virheenkorjauksessa, jos virheentarkistus on toteutettu komentosarjassa. Seuraava skripti näyttää tapoja muuntaa XML -tiedostojen sisältö assosiatiiviseksi matriisiksi käyttämällä simplexml_load_file () -funktiota ja virheiden käsittelyä. Toimintoa libxml_use_internal_errors () käytetään TOSI -arvon kanssa virheiden käsittelyn mahdollistamiseksi. Jos komentosarjassa käytetty XML -tiedoston sisältö sisältää virheitä, simplexml_load_file () -funktio palauttaa epätosi ja virheilmoitus tulostetaan käyttämällä libxml_get_errors () -funktiota. Jos XML-tiedostossa ei ole virhettä, tiedoston sisältö muuttuu oikein kaksiulotteiseksi assosiatiiviseksi matriisiksi.



// Ota käyttäjän virheiden käsittely käyttöön
libxml_use_internal_errors (TOTTA);

// Luo XML -objekti
$ objXml = simplexml_load_file ('course.xml');

// Tulostusvirhe, jos XML -objekti palauttaa epätosi
jos ($ objXml === VÄÄRÄ) {
heitti pois 'XML -tiedoston jäsentämisessä tapahtui virheitä. n'';
jokaiselle( libxml_get_errors () kuten $ virhe) {
heitti pois $ virhe->viesti;
}
poistua ;
}

// Muunna XML -objekti JSON -objektiksi
$ objJson = json_encode ($ objXml);
// Muunna JSON -objekti assosiatiiviseksi matriisiksi
$ assarr = json_decode ($ objJson, TOTTA);

// Tulosta assosiatiivisen taulukon rakenne
heitti pois '
';  
print_r ($assArray);
echo '
'
;

?>

Lähtö:

Seuraava tulos tulee näkyviin PHP -komentosarjan suorittamisen jälkeen. Tässä XML -tiedostossa ei ole virhettä. Kaksiulotteinen matriisi on siis muodostettu kuten edellinenkin esimerkki XML-tiedoston, course.xml, sisällön perusteella.

Esimerkki 3: Muunna XML-sisältö assosiatiiviseksi matriisiksi

Seuraava skripti näyttää tavan muuntaa XML -tiedot assosiatiiviseksi matriisiksi SimpleXMLElement () -toiminnon avulla. Skriptissä XML -sisältö tallennetaan muuttujaan nimeltä $ xml, jota käytetään funktion SimpleXMLElement () argumenttina. Seuraavaksi json_encode () - ja json_decode () -toimintoa käytetään assosiatiivisen taulukon saamiseen XML -tiedostosisällön muuntamisen jälkeen.



// Määritä XML -muuttuja
$ xml = <<


[sähköposti suojattu]

12 / A, Dhanmondi
Dhaka



[sähköposti suojattu]

156, motiivi
Dhaka



[sähköposti suojattu]

21 / B, Mogbazar
Dhaka



XML
;

// Luo XML -objekti
$ xmlObject = UusiSimpleXMLElement($ xml);
// Luo JSON -objekti
$ jsonObject = json_encode ($ xmlObject);
// Muunna JSON -objekti assosiatiiviseksi matriisiksi
$ assArray = json_decode ($ jsonObject, totta);

// Tulosta assosiatiivisen taulukon rakenne
heitti pois '
';  
print_r ($assarr);
echo '
'
;

?>

Lähtö:

Seuraava tulos tulee näkyviin PHP -komentosarjan suorittamisen jälkeen. Tässä luodaan kaksiulotteinen matriisi XML-muuttujan $ xml sisällön perusteella.

Johtopäätös:

Tässä opetusohjelmassa esiteltiin kolme eri tapaa muuntaa XML -sisältö assosiatiiviseksi matriisiksi. Tämä auttaa lukijoita tietämään tavan käsitellä XML -tietoja ja jäsentää XML -sisällön tiedot helposti PHP -komentosarjan avulla.