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.



