Dynamische Erstellung von XML-Dokumenten mit PHP DOM

Mit der PHP DOM API kann man von Grund auf vollständige, gut formatierte XML-Dokument erzeugen. Die Einführung erklärt die Arbeit mit der Anwendungsschnittstelle Schritt für Schritt an einem Beispiel.

Wenn Entwickler mit XML-basierten Anwendungen arbeiten, besteht dabei oft die Anforderung, spontan Datenstrukturen im XML-Code zu erstellen. Beispiel hierfür ist etwa ein XML-Bestell-Template, das der Benutzer in Web-Darstellung vorgegeben hat. Ein anderes Beispiel wäre eine XML-Darstellung eines Serverrequests oder einer Antwort des Clientsystems, das auf Laufzeitparametern basiert.

Obwohl diese Aufgabe schwierig erscheint, ist sie in Wirklichkeit ganz einfach, wenn man das ausgefeilte DOM API von PHP für die Erstellung und Bearbeitung von dynamischen Knoten verwendet.

Hinweis: Dieser Artikel setzt eine laufende Apache- und PHP5-Installation mit aktivierten DOM-Funktionen voraus, außerdem Erfahrung mit den XML-Basisstrukturen wie Elementen, Attributen und CDATA-Blöcken.

Eine Doctype-Deklaration anlegen

Am Anfang eines XML-Projekts steht die XML-Deklaration. In PHP sie recht einfach: Man muss nur ein Objekt der “DOMDocument”-Klasse initialisieren und ihm eine Versionsnummer geben. Wie das gemacht wird, ist in Listing A zu sehen.



Es empfiehlt sich, dass man sich die saveXML()-Methode des DOMDocument-Objekts merkt. Darauf wird später eingegangen. Im Moment reicht es zu wissen, dass mit dieser Methode ein aktueller Schnappschuss des XML-Baums in einer Datei oder im Browser erzeugt werden kann. In diesem Fall wurde der Output als ASCII-Text direkt an den Browser geschickt, damit er besser lesbar ist. In der realen Anwendungsumgebung würde man wahrscheinlich den folgenden Content-Type benutzen: text/xml header.

Das Ergebnis im Browser sollte etwa so aussehen:


<?xml version="1.0"?>

Neueste Kommentare 

2 Kommentare zu Dynamische Erstellung von XML-Dokumenten mit PHP DOM

  • Am 2. April 2009 um 15:29 von Stefan

    XML DOM
    Also ich hätte mich ja noch ganz gerne für die bearbeitung von vorhandenem XML mit DOM interressierrt aber davon konnte ich in diesem Artikel nichts lesen..

    Aber ansonsten ganz gut verfasst.

    Allerdings das der Code in Scrollfenstern ist ist etwas naja, nicht so toll.
    Und ein Code Markup wäre auch nicht schlecht, also das der Code Farblich etwas sortiert ist wie z.B.: auf php.de.

  • Am 10. Dezember 2012 um 19:09 von tobi

    Mir hat der Artikel sehr gut gefallen und er hat mir auf jeden Fall sehr in meiner Problematik gerade einen Flashplayer für meine Seite zu bauen sehr geholfen! Genau das richtige, danke dafür =)
    Das einzige was mich jetzt noch wurmt ist, dass ich einen Einbindungsfehler bekomme, da ich das header(“Content-Type: text/plain”); irgendwie in den Header einbinden muss, aber die XML Seite erst später einbinden möchte, aber mal schauen das löst sich auch noch :D

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *