PHP XML-tutorial: creëren, parseren, lezen met voorbeeld
Wat is XML?
XML is de afkorting voor Extensible Markup Language.
XML wordt gebruikt om gegevens van het ene systeem naar het andere te structureren, op te slaan en te transporteren.
XML is vergelijkbaar met HTML.
Er wordt gebruik gemaakt van openings- en sluitingstags.
In tegenstelling tot HTML kunnen gebruikers met XML hun eigen tags definiëren.
Wat is DOM?
DOM is de afkorting voor Document Object Model.
Het is een platformonafhankelijke en taalneutrale standaard die definieert hoe gegevens kunnen worden benaderd en gemanipuleerd;
- HTML
- XHTML
- XML
DOM XML wordt gebruikt om XML-documenten te openen en te manipuleren. Het bekijkt het XML-document als boomstructuur.
XML-parsers
Een XML-parser is een programma dat het XML-document vertaalt naar een XML Document Object Model (DOM)-object.
Het XML DOM-object kan vervolgens worden gemanipuleerd met behulp van Javascript, Pythonen PHP enz.
Het trefwoord CDATA, de afkorting voor (Unparsed) Character Data, wordt gebruikt om speciale tekens zoals “<,>” te negeren bij het parseren van een XML-document.
Waarom XML gebruiken?
- Webservices zoals SOAP en REST gebruiken het XML-formaat om informatie uit te wisselen. Als u leert wat XML is en hoe het werkt, krijgt u als ontwikkelaar een concurrentievoordeel, aangezien moderne applicaties intensief gebruik maken van webservices.
- XML-documenten kunnen worden gebruikt om configuratie-instellingen van een applicatie op te slaan
- Hiermee kunt u uw eigen aangepaste tags maken, waardoor het flexibeler wordt.
XML-documentvoorbeeld
Stel dat u een applicatie ontwikkelt die gegevens van een webservice in XML-indeling ophaalt.
Hieronder ziet u een voorbeeld van hoe het XML-document eruit ziet.
<?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>
HIER,
- “ ” specificeert de XML-versie die moet worden gebruikt en de codering
- “ ' is het basiselement.
- “ … ” zijn de onderliggende elementen van respectievelijk administratie en verkoop.
Hoe XML te lezen met PHP
Laten we nu de code schrijven die het XML-document van de werknemer leest en de resultaten in een webbrowser weergeeft. 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>'; } ?>
HIER,
- “$xml = simplexml_load_file('employees.xml');” gebruikt de functie simplexml_load_file om de bestandsnaam employees.xml te laden en de inhoud toe te wijzen aan de arrayvariabele $xml.
- “$lijst = $xml->record;” haalt de inhoud van het recordknooppunt op.
- “for ($i = 0; $i < count(…)...” is de for-lus die de numerieke array leest en de resultaten uitvoert
- “$list[$i]->attributen()->man_no;” leest het man_no attribuut van het element
- “$lijst[$i]->naam;” leest de waarde van het naam-kindelement
- “$lijst[$i]->positie;” leest de waarde van het onderliggende positie-element
Onze applicatie testen
Ervan uitgaande dat u het bestand index.php in de map phptus/xml hebt opgeslagen, bladert u naar de URL http://localhost/phptuts/xml/index.php
Hoe u een XML-document maakt met behulp van PHP
We zullen nu bekijken hoe u een XML-document kunt maken met behulp van PHP.
We zullen het bovenstaande voorbeeld gebruiken in het DOM-boomdiagram.
De volgende code maakt gebruik van de ingebouwde PHP-klasse DOMDocument om een XML-document te maken.
<?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"; ?>
HIER,
- “$dom = nieuw DOMDocument();” maakt een exemplaar van de DOMDocument-klasse.
- “$dom->codering = 'utf-8';” stelt de documentcodering in op utf-8
- “$dom->xmlVersion = '1.0';” specificeert het versienummer 1.0
- “$dom->formatOutput = waar;” zorgt ervoor dat de uitvoer goed is opgemaakt
- “$root = $dom->createElement('Films');” maakt het hoofdknooppunt met de naam Films
- “$attr_movie_id = nieuwe DOMAttr('movie_id', '5467');” definieert het film-id-attribuut van het knooppunt Films
- “$child_node_element_name = $dom->createElement('ElementName', 'ElementValue')” creëert het onderliggende knooppunt van het Movies-knooppunt. ElementName specificeert de naam van het element, bijvoorbeeld Titel. ElementValue stelt de waarde van het onderliggende knooppunt in, bijvoorbeeld De Campagne.
- “$root->appendChild($movie_node);” voegt de movie_node-elementen toe aan het hoofdknooppunt Movies
- “$dom->appendChild($root);” voegt het hoofdknooppunt toe aan het XML-document.
- “$dom->opslaan($xml_bestandsnaam);” slaat het XML-bestand op in de hoofdmap van de webserver.
- “echo ' '. $xml_bestandsnaam . ' is succesvol aangemaakt';” maakt de link naar het XML-bestand.
Onze applicatie testen
Ervan uitgaande dat u het bestand create_movies_list in de map phptuts/xml hebt opgeslagen, bladert u naar de URL http://localhost/phptuts/xml/create_movies_list.php
Klik op de link movies_list_xml
Samenvatting
- XML is de afkorting voor Extensible Markup Language
- XML kan worden gebruikt voor het uitwisselen van informatie tussen systemen of het opslaan van configuratie-instellingen van een applicatie enz.
- DOM is de afkorting voor Document Object Model. XML DOM beschouwt het XML-document als een boomstructuur
- Een XML-parser is een programma dat XML en een XML-document vertaalt naar een DOM-boomstructuurachtig document.
- CDATA wordt gebruikt om speciale tekens te negeren bij het parseren van XML-documenten.
- PHP gebruikt de simplexml_load_file om XML-documenten te lezen en de resultaten als een numerieke array te retourneren
- PHP DOMDocument-klasse om XML-bestanden te maken.