PHP SimpleXML

SimpleXML behandelt de meest voorkomende XML-taken, terwijl andere taken worden overgelaten aan andere uitbreidingen.

Wat is SimpleXML?

SimpleXML is een nieuwe functie in PHP 5. Het is een handige manier om elementeigenschappen en tekst te verkrijgen, wanneer de layout van het XML-document bekend is.

In vergelijking met DOM of Expat-parser kan SimpleXML met slechts enkele regels code tekstdata van elementen lezen.

SimpleXML kan een XML-document omzetten in een object, zoals:

  • Element - Wordt omgezet in een SimpleXMLElement-object. Wanneer er op hetzelfde niveau meerdere elementen zijn, worden deze in een array geplaatst.
  • Eigenschappen - Toegang via een关联数组, waarbij de indexen de naam van de eigenschap zijn.
  • Elementgegevens - De tekstdata van het element wordt omgezet in een string. Als een element meerdere tekstknopen heeft, worden deze in de volgorde waarin ze worden gevonden weergegeven.

Bij het uitvoeren van basis taken zoals hieronder vermeld, is SimpleXML zeer snel in gebruik:

  • Een XML-bestand lezen
  • Gegevens ophalen uit een XML-tekst
  • Tekstknopen of eigenschappen bewerken

Maar bij het verwerken van geavanceerde XML, zoals namespaces, is het het beste om de Expat-parser of XML DOM te gebruiken.

Installatie

Vanaf PHP 5.0 is SimpleXML een integraal onderdeel van het PHP-kern. Deze functies hoeven niet te worden geïnstalleerd om te kunnen worden gebruikt.

Gebruik SimpleXML

Hier is een XML-bestand:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Herinnering</heading>
<body>Don't forget the meeting!</body>
</note>

We willen de namen en gegevens van de elementen uit het bovenstaande XML-bestand weergeven.

Dit is wat we moeten doen:

  1. Laad XML-bestand in
  2. Haal de naam van het eerste element op
  3. Maak een lus aan met de children() functie die op elke subnode wordt geactiveerd
  4. Geef de elementnamen en gegevens van elke subnode weer

Voorbeeld

<?php
$xml = simplexml_load_file("test.xml");
echo $xml->getName() . "<br />";
foreach($xml->children() as $child)
  {
  echo $child->getName() . ": " . $child . "<br />";
  }
?>

De uitvoer van de bovenstaande code:

note
to: George
from: John
heading: Herinnering
body: Vergeet het vergadering niet!

Meer informatie over PHP SimpleXML

Voor meer informatie over PHP SimpleXML, bezoek onze PHP SimpleXML referentiemanual.