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"?>

Fanden Sie diesen Artikel nützlich?
8 von 8 Lesern fanden diesen Artikel nützlich.

Aktuelle Job-Angebote

Lesermeinungen zum Artikel

 
von Stefan
am 2. April 2009, 15:29 Uhr
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.

ZDNet.de Live

Patch ...

Patchday: Microsoft stopft kritische Lecks t.co/...

10.02.12, 11:30 von silicon_de
New ...

New Yorker Staatsanwaltschaft lässt Kartellklage gegen Intel fallen t.co/...

10.02.12, 11:30 von zdnet_de
Vom ...

Vom Fluch der Standards t.co/...

10.02.12, 11:20 von silicon_de
Oracl ...

Oracle will Taleo kaufen t.co/...

10.02.12, 11:10 von silicon_de
Pakis ...

Pakistan blocks 13,000 'obscene' sites. t.co/...

10.02.12, 10:54 von zdnetasia
Medio ...

Medion und NEC bescheren Lenovo 44 Prozent Umsatzplus t.co/...

10.02.12, 10:40 von zdnet_de
The ...

The future of browsing...[video] t.co/...

10.02.12, 10:35 von ZDNet
Eine ...

Eine Mitteilung betreffs des Teilens t.co/...

10.02.12, 10:20 von silicon_de
Socia ...

Social Networker bei Freunden wählerisch t.co/...

10.02.12, 10:20 von silicon_de
Micro ...

Microsoft kündigt Patches für Windows, Office und Internet Explorer an t.co/...

10.02.12, 09:50 von zdnet_de
Forsc ...

Forscher knacken PIN-Verschlüsselung von Google Wallet t.co/...

10.02.12, 09:30 von zdnet_de
Analy ...

Analyst: Lenovo set to dethrone HP in PC market. t.co/...

10.02.12, 09:21 von zdnetasia
iPhon ...

iPhone Apps schnüffeln mehr als man denkt t.co/...

10.02.12, 09:10 von silicon_de
Kodak ...

Kodak stellt Kamerageschäft ein t.co/...

10.02.12, 09:10 von zdnet_de
Onlin ...

Online retailers, not e-books, threat to bookstores. t.co/...

10.02.12, 08:52 von zdnetasia
M-ban ...

M-banking adoption outpacing security. t.co/...

10.02.12, 08:42 von zdnetasia
BTW ...

BTW blog by @eileenzdnetasia: Govt IT in need of transformation, basics must remain unchanged. t.co/...

10.02.12, 08:30 von zdnetasia
IBM ...

IBM to fix David Jones' online sales: t.co/...

10.02.12, 07:11 von zdnetaustralia
AFL ...

AFL fights Optus for its copyright: t.co/...

10.02.12, 07:04 von zdnetaustralia
Satel ...

Satellite-hating Libs blow policy free kick: t.co/...

10.02.12, 06:59 von zdnetaustralia