PHP-SimpleXML

SimpleXML behandelt die einfachsten XML-Aufgaben und andere Aufgaben werden von anderen Erweiterungen übernommen.

Was ist SimpleXML?

SimpleXML ist eine neue Funktion in PHP 5. Wenn Sie das Layout eines XML-Dokuments verstehen, ist es eine bequeme Möglichkeit, Elementeigenschaften und Text zu erhalten.

Im Vergleich zu DOM oder Expat-Parser kann SimpleXML mit nur wenigen Zeilen Code Textdaten aus Elementen lesen.

SimpleXML kann XML-Dokumente in Objekte umwandeln, z.B.:

  • Element - Ein einzelnes Attribut wird in ein SimpleXMLElement-Objekt umgewandelt. Wenn mehrere Elemente auf der gleichen Ebene existieren, werden sie in einem Array platziert.
  • Attribute - Durch den Zugriff über ein assoziatives Array werden die Indizes den Attributnamen entsprechen.
  • Elementdaten - Der Text eines Elements wird in einen String umgewandelt. Wenn ein Element mehrere Textknoten hat, werden sie in der Reihenfolge ihrer Entdeckung angeordnet.

Bei der Durchführung ähnlicher grundlegender Aufgaben ist SimpleXML sehr schnell zu verwenden:

  • XML-Datei lesen
  • Daten aus XML-Zeilen extrahieren
  • Textknoten oder Attribute bearbeiten

Bei der Verarbeitung fortgeschrittener XML, wie z.B. Namespace, ist es besser, den Expat-Parser oder XML DOM zu verwenden.

Installation

Ab PHP 5.0 ist die SimpleXML-Funktion ein Bestandteil des PHP-Kerns. Diese Funktionen können ohne Installation verwendet werden.

Verwenden Sie SimpleXML

Hier ist eine XML-Datei:

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

Wir planen, die Namen und Inhalte der Elemente aus dem obigen XML-Dokument auszugeben.

Das zu tun ist:

  1. Laden Sie die XML-Datei
  2. Erhalten Sie den Namen des ersten Elements
  3. Erstellen Sie einen Loop, der bei jedem Unterlement ausgelöst wird, mit der Funktion children()
  4. Geben Sie den Namen und den Inhalt jedes Unterelements aus

Beispiel

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

Die Ausgabe des folgenden Codes:

notiz
an: George
von: John
heading: Erinnerung
body: Vergiss das Treffen nicht!

Mehr über PHP SimpleXML

Für mehr Informationen über PHP SimpleXML besuchen Sie bitte unsere PHP SimpleXML Referenzhandbuch.