PHP XML Tutorial: Create, Parse, Read with Example
Co je XML?
XML je zkratka pro Extensible Markup Language.
XML se používá ke strukturování, ukládání a přenosu dat z jednoho systému do druhého.
XML je podobné HTML.
Používá otevírací a uzavírací značky.
Na rozdíl od HTML umožňuje XML uživatelům definovat své vlastní značky.
Co je DOM?
DOM je zkratka pro Document Object Model.
Je to multiplatformní a jazykově neutrální standard, který definuje, jak přistupovat k datům a jak s nimi manipulovat;
- HTML
- XHTML
- XML
DOM XML se používá k přístupu a manipulaci s dokumenty XML. To zobrazí dokument XML jako stromová struktura.
XML Parsery
Analyzátor XML je program, který překládá dokument XML na objekt modelu XML dokumentu (DOM).
S objektem XML DOM lze poté manipulovat pomocí JavaSkript, Pythona PHP atd.
Klíčové slovo CDATA, které je zkratkou pro (neanalyzovaná) znaková data, se používá k ignorování speciálních znaků, jako je „<,>“, při analýze dokumentu XML.
Proč používat XML?
- Webové služby jako SOAP a REST používají k výměně informací formát XML. Když se naučíte, co je XML a jak funguje, získáte konkurenční výhodu jako vývojář, protože moderní aplikace hojně využívají webové služby.
- Dokumenty XML lze použít k uložení konfiguračních nastavení aplikace
- Umožňuje vám vytvářet si vlastní značky, díky nimž je flexibilnější.
Příklad dokumentu XML
Předpokládejme, že vyvíjíte aplikaci, která získává data z webové služby ve formátu XML.
Níže je ukázka toho, jak XML dokument vypadá.
<?xml version="1.0" encoding="utf-8"?> <employees status = "ok"> <record man_no = "101"> <name>Joe Paul</name> <position>CEO</position> </record> <record man_no = "102"> <name>Tasha Smith</name> <position>Finance Manager</position> </record> </employees>
TADY,
- “ ” určuje verzi xml, která se má použít, a kódování
- “ “ je kořenový prvek.
- “ … “ jsou podřízené prvky správy a prodeje.
Jak číst XML pomocí PHP
Pojďme nyní napsat kód, který bude číst XML dokument zaměstnanců a zobrazovat výsledky ve webovém prohlížeči. Index.php
<?php $xml = simplexml_load_file('employees.xml'); echo '<h2>Employees Listing</h2>'; $list = $xml->record; for ($i = 0; $i < count($list); $i++) { echo '<b>Man no:</b> ' . $list[$i]->attributes()->man_no . '<br>'; echo 'Name: ' . $list[$i]->name . '<br>'; echo 'Position: ' . $list[$i]->position . '<br><br>'; } ?>
TADY,
- “$xml = simplexml_load_file('employees.xml');” používá funkci simplexml_load_file k načtení názvu souboru zaměstnanci.xml a přiřazení obsahu proměnné pole $xml.
- “$list = $xml->záznam;” získá obsah uzlu záznamu.
- „for ($i = 0; $i < počet(…)…“ je cyklus for, který čte číselné pole a vydává výsledky
- “$list[$i]->attributes()->man_no;” přečte atribut man_no prvku
- “$list[$i]->name;” přečte hodnotu podřízeného prvku name
- “$list[$i]->position;” přečte hodnotu podřízeného prvku pozice
Testování naší aplikace
Za předpokladu, že jste uložili soubor index.php do složky phptus/xml, přejděte na URL http://localhost/phptuts/xml/index.php
Jak vytvořit XML dokument pomocí PHP
Nyní se podíváme na to, jak vytvořit XML dokument pomocí PHP.
Výše uvedený příklad použijeme ve stromovém diagramu DOM.
Následující kód používá PHP vestavěný ve třídě DOMDocument k vytvoření dokumentu XML.
<?php $dom = new DOMDocument(); $dom->encoding = 'utf-8'; $dom->xmlVersion = '1.0'; $dom->formatOutput = true; $xml_file_name = 'movies_list.xml'; $root = $dom->createElement('Movies'); $movie_node = $dom->createElement('movie'); $attr_movie_id = new DOMAttr('movie_id', '5467'); $movie_node->setAttributeNode($attr_movie_id); $child_node_title = $dom->createElement('Title', 'The Campaign'); $movie_node->appendChild($child_node_title); $child_node_year = $dom->createElement('Year', 2012); $movie_node->appendChild($child_node_year); $child_node_genre = $dom->createElement('Genre', 'The Campaign'); $movie_node->appendChild($child_node_genre); $child_node_ratings = $dom->createElement('Ratings', 6.2); $movie_node->appendChild($child_node_ratings); $root->appendChild($movie_node); $dom->appendChild($root); $dom->save($xml_file_name); echo "$xml_file_name has been successfully created"; ?>
TADY,
- “$dom = nový DOMDocument();” vytvoří instanci třídy DOMDocument.
- “$dom->encoding = 'utf-8';” nastaví kódování dokumentu na utf-8
- “$dom->xmlVersion = '1.0';” určuje číslo verze 1.0
- “$dom->formatOutput = true;” zajišťuje, že výstup je dobře naformátovaný
- “$root = $dom->createElement('Filmy');” vytvoří kořenový uzel s názvem Movies
- “$attr_movie_id = new DOMAttr('movie_id', '5467');” definuje atribut movie id uzlu Movies
- “$child_node_element_name = $dom->createElement('ElementName', 'ElementValue')” vytvoří podřízený uzel uzlu Movies. ElementName specifikuje název elementu, např. Title. ElementValue nastavuje hodnotu podřízeného uzlu, např. The Campaign.
- “$root->appendChild($movie_node);” připojí prvky movie_node ke kořenovému uzlu Movies
- “$dom->appendChild($root);” připojí kořenový uzel k dokumentu XML.
- “$dom->save($xml_file_name);” uloží soubor XML do kořenového adresáře webového serveru.
- "echo " . $xml_file_name . „ byl úspěšně vytvořen“;“ vytvoří odkaz na soubor XML.
Testování naší aplikace
Za předpokladu, že jste uložili soubor create_movies_list do složky phptuts/xml, přejděte na adresu URL http://localhost/phptuts/xml/create_movies_list.php
Klikněte na odkaz movies_list_xml
Shrnutí
- XML je zkratka pro Extensible Markup Language
- XML lze použít pro výměnu informací mezi systémy nebo ukládání konfiguračních nastavení aplikace atd.
- DOM je zkratka pro Document Object Model. XML DOM nahlíží na dokument XML jako na stromovou strukturu
- XML Parser je program, který překládá XML dokument XML do stromové struktury typu DOM.
- CDATA se používá k ignorování speciálních znaků při analýze dokumentů XML.
- PHP používá simplexml_load_file ke čtení dokumentů XML a vrací výsledky jako číselné pole
- PHP třída DOMDocument pro vytváření souborů XML.