Dynamische Erstellung von XML-Dokumenten mit PHP DOM

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

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Chrome 129 stopft schwerwiegende Sicherheitslöcher

Hacker können aus der Ferne Schadcode einschleusen und ausführen. Betroffen sind Chrome für Windows, macOS…

5 Stunden ago

Sicherheitslücken bei Verivox und Check24 geben Kundendaten preis

Das Datenleck betrifft den Kreditvergleich. Unbefugte haben zwischenzeitlich Zugriff auf die Kreditvergleiche anderer Kunden.

13 Stunden ago

Copilot Wave 2: Microsoft kündigt neue KI-Funktionen an

Copilot wird stärker in Microsoft 365 integriert. Neue Funktionen stehen unter anderem für Excel, Outlook,…

19 Stunden ago

Kritische RCE-Schwachstelle in Google Cloud Platform

Schwachstelle weist laut Tenable auf schwerwiegende Sicherheitslücke in Google Cloud Diensten hin, insbesondere App Engine,…

1 Tag ago

Microsoft macht Office LTSC 2024 allgemein verfügbar

Die neue Version kommt mit einem Supportzeitraum von fünf Jahren. Währenddessen erhält Office LTSC 2024…

1 Tag ago

iOS 18 schließt 33 Sicherheitslücken

Sie führen unter Umständen zur Preisgabe vertraulicher Informationen oder gar zu einem Systemabsturz. Apples KI-Dienste…

1 Tag ago