PHP XML-Tutorial: Erstellen, Analysieren, Lesen mit Beispiel
⚡ Intelligente Zusammenfassung
PHP und XML arbeiten zusammen, um Daten zwischen Systemen zu strukturieren, zu speichern und auszutauschen. Diese Einführung erklärt XML, das DOM und XML-Parser, zeigt anschließend, wie man ein XML-Dokument mit SimpleXML liest und wie man es mit der DOMDocument-Klasse erstellt, und schließt mit der Erläuterung der Anwendungsfälle für die einzelnen Klassen.

Was ist XML?
XML ist die Abkürzung für Extensible Markup Language.
XML dient dazu, Daten zu strukturieren, zu speichern und von einem System in ein anderes zu übertragen.
XML ähnelt HTML. Es verwendet öffnende und schließende Tags. Im Gegensatz zu HTML ermöglicht XML Benutzern jedoch, eigene Tags zu definieren.
Was ist DOM?
DOM ist die Abkürzung für Document Object Model.
Es handelt sich um einen plattformübergreifenden und sprachneutralen Standard, der definiert, wie auf Daten zugegriffen und diese bearbeitet werden können in:
- HTML
- XHTML
- XML
DOM XML wird verwendet, um auf XML-Dokumente zuzugreifen und diese zu bearbeiten. Es Zeigt das XML-Dokument an als Baumstruktur.
XML-Parser
Ein XML-Parser ist ein Programm, das das XML-Dokument in ein XML Document Object Model (DOM)-Objekt übersetzt.
Das XML-DOM-Objekt kann dann manipuliert werden mithilfe von JavaSkript, Python, PHP und andere Sprachen.
Das Schlüsselwort CDATA, die Abkürzung für (unparsed) Character Data, wird verwendet, um Sonderzeichen wie „<“ und „>“ beim Parsen eines XML-Dokuments zu ignorieren.
Warum XML verwenden?
- Webdienste wie SOAP und REST nutzen das XML-Format zum Informationsaustausch. Kenntnisse über XML und seine Funktionsweise verschaffen Entwicklern einen Wettbewerbsvorteil, da moderne Anwendungen intensiv auf Webdienste zurückgreifen.
- XML-Dokumente können verwendet werden, um die Konfigurationseinstellungen einer Anwendung zu speichern.
- Es ermöglicht Ihnen, Ihre eigenen benutzerdefinierten Tags zu erstellen, was es flexibler macht.
Beispiel für ein XML-Dokument
Nehmen wir an, Sie entwickelnping Eine Anwendung, die Daten von einem Webdienst im XML-Format abruft.
Nachfolgend sehen Sie ein Beispiel, wie das XML-Dokument aussieht.
<?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,
- „ „gibt die zu verwendende XML-Version und -Kodierung an.“
- „ „ist das Wurzelelement.
- „ … “ sind die untergeordneten Elemente, eines pro Mitarbeiterdatensatz.
So lesen Sie XML mit PHP
Schreiben wir nun den Code, der das XML-Dokument der Mitarbeiter liest und die Ergebnisse in einem Webbrowser anzeigt. 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');“ verwendet die Funktion simplexml_load_file, um die Datei employees.xml zu laden und ihren Inhalt der Variablen $xml zuzuweisen.
- “$list = $xml->record;” ruft den Inhalt der Datensatzknoten ab.
- „for ($i = 0; $i < count(…)…“ ist die for-Schleife, die das Array liest und die Ergebnisse ausgibt.
- „$list[$i]->attributes()->man_no;“ liest das man_no-Attribut des Elements
- „$list[$i]->name;“ liest den Wert des untergeordneten Elements name
- „$list[$i]->position;“ liest den Wert des untergeordneten Positionselements
Testen des XML-Readers
Angenommen, Sie haben die Datei index.php im Ordner phptuts/xml gespeichert, navigieren Sie zu folgendem Pfad: URL http://localhost/phptuts/xml/index.php
So erstellen Sie ein XML-Dokument mit PHP
Wir werden uns nun ansehen, wie man mit PHP ein XML-Dokument erstellt.
Der folgende Code verwendet die in PHP integrierte Klasse DOMDocument, um ein XML-Dokument zu erstellen.
<?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', 'Comedy'); $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 = new DOMDocument();“ erzeugt eine Instanz der Klasse DOMDocument.
- „$dom->encoding = 'utf-8';“ Setzt die Dokumentkodierung auf utf-8
- „$dom->xmlVersion = '1.0';“ gibt die Versionsnummer 1.0 an
- „$dom->formatOutput = true;“ stellt sicher, dass die Ausgabe gut formatiert ist
- „$root = $dom->createElement('Movies');“ erstellt den Stammknoten mit dem Namen Movies
- „$attr_movie_id = new DOMAttr('movie_id', '5467');“ definiert das Attribut movie_id des Filmknotens.
- „$dom->createElement('ElementName', 'ElementValue')“ erstellt einen untergeordneten Knoten. ElementName gibt den Namen des Elements an, z. B. Titel. ElementValue legt den Wert des untergeordneten Knotens fest, z. B. Die Kampagne.
- „$root->appendChild($movie_node);“ fügt den Filmknoten an den Wurzelknoten „Filme“ an.
- „$dom->appendChild($root);“ Hängt den Wurzelknoten an das XML-Dokument an.
- „$dom->save($xml_file_name);“ speichert die XML-Datei im Stammverzeichnis des Webservers.
- “echo “$xml_file_name wurde erfolgreich erstellt”;” zeigt eine Erfolgsmeldung an.
Testen des XML Creator
Angenommen, Sie haben die Datei create_movies_list.php im Ordner phptuts/xml gespeichert, navigieren Sie zu folgendem Pfad: URL http://localhost/phptuts/xml/create_movies_list.php
Öffnen Sie die Datei movies_list.xml.
SimpleXML vs DOMDocument
PHP bietet zwei Hauptmethoden zur Arbeit mit XML. SimpleXML eignet sich am besten zum Lesen von Daten, während DOMDocument eine feinere Steuerung für die Erstellung und umfangreiche Bearbeitung von Dokumenten ermöglicht. Die folgende Tabelle vergleicht die beiden Methoden.
| Aspekt | SimpleXML | DOMDokument |
|---|---|---|
| Benutzerfreundlichkeit | Ganz einfach; das Dokument verhält sich wie verschachtelte Objekte. | Ausführlichere, knotenbasierte API |
| am besten für | Lesen und leichte Bearbeitung | Erstellung von Dokumenten und komplexe Manipulationen |
| Zugriffsstil | $xml->record->name | createElement() und appendChild() |
| XPath-Unterstützung | Ja, über ->xpath() | Ja, über die DOMXPath-Klasse |
Eine praktische Regel ist, zunächst SimpleXML zum Lesen von Feeds und einfachen Dateien zu verwenden und dann zu DOMDocument zu wechseln, wenn man Dokumente erstellen, Knoten an bestimmten Positionen einfügen oder anhand eines Schemas validieren muss.



