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'?>>
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.