Zum Inhalt springen

PHP XML DOM

Einführung

XML (Extensible Markup Language) ist ein vielseitiges Format für den Datenaustausch und die Speicherung. PHP (Hypertext Preprocessor) ist eine leistungsstarke serverseitige Skriptsprache. Gemeinsam arbeiten sie nahtlos über die PHP XML DOM-Erweiterung, die eine umfangreiche Sammlung von Klassen und Funktionen zum Parsen, Erstellen, Ändern und Abfragen von XML-Dokumenten bereitstellt.

Installation

Die PHP XML DOM-Erweiterung wird normalerweise mit PHP gebündelt und standardmäßig aktiviert. Auf vielen Systemen wird sie über das Paket php-xml bereitgestellt. Falls sie nicht aktiviert ist, können Sie sie aktivieren, indem Sie extension=dom in Ihrer php.ini-Datei auskommentieren oder das entsprechende Paket über Ihren Paketmanager installieren. Überprüfen Sie Ihre PHP-Version und Erweiterungseinstellungen und konsultieren Sie bei Bedarf Ihren Systemadministrator oder Hosting-Anbieter. Sobald sie aktiviert ist, können Sie sie in Ihren PHP-Skripten verwenden.

Grundlegende Syntax

PHP XML DOM verwendet eine objektorientierte Syntax, die auf dem Document Object Model (DOM)-Standard basiert. Dieser stellt ein XML-Dokument als einen Baum von Knoten dar, wobei jeder Knoten Eigenschaften und Methoden zur Manipulation besitzt. Die grundlegende Syntax zum Erstellen eines neuen DOMDocument-Objekts, zum Laden einer XML-Datei und zum Zugriff auf seine Knoten lautet wie folgt:

php
<?php
libxml_use_internal_errors(true);
$doc = new DOMDocument();
if ($doc->load('filename.xml')) {
    $root = $doc->documentElement;
    $children = $root->childNodes;
}
?>

Dieser Code erstellt ein neues DOMDocument-Objekt, lädt eine XML-Datei namens 'filename.xml', ruft das Stammelement des Dokuments ab und erhält eine Liste seiner untergeordneten Knoten. Anschließend können Sie durch die untergeordneten Knoten iterieren und je nach Bedarf auf ihre Eigenschaften und Methoden zugreifen.

XML-Dokumente erstellen

PHP XML DOM bietet außerdem eine einfache und flexible Möglichkeit, XML-Dokumente von Grund auf neu zu erstellen, wobei dieselbe objektorientierte Syntax verwendet wird. Sie können neue Elemente, Attribute, Textknoten und Kommentare erstellen und sie an das Dokument oder an andere Elemente anhängen. Hier ist ein Beispiel, wie Sie ein einfaches XML-Dokument mit zwei Elementen erstellen:

php
<?php
libxml_use_internal_errors(true);
$doc = new DOMDocument();
$root = $doc->createElement('root');
$doc->appendChild($root);
$child1 = $doc->createElement('child1', 'text1');
$root->appendChild($child1);
$child2 = $doc->createElement('child2', 'text2');
$root->appendChild($child2);
echo $doc->saveXML();
?>

Dieser Code erstellt ein neues DOMDocument-Objekt, erzeugt ein Stammelement namens 'root', hängt es an das Dokument an, erstellt zwei untergeordnete Elemente namens 'child1' und 'child2', legt deren Textinhalt auf 'text1' bzw. 'text2' fest und hängt sie an das Stammelement an. Abschließend gibt er den XML-Code des Dokuments aus, der in etwa so aussehen sollte:

xml
<root>
  <child1>text1</child1>
  <child2>text2</child2>
</root>

XML-Dokumente speichern

Nach dem Erstellen oder Ändern eines XML-Dokuments können Sie es mit der Methode save() auf der Festplatte speichern. Diese Methode schreibt den DOM-Baum in einen angegebenen Dateipfad.

php
<?php
libxml_use_internal_errors(true);
$doc = new DOMDocument('1.0', 'UTF-8');
$root = $doc->createElement('root');
$doc->appendChild($root);
$child = $doc->createElement('child', 'data');
$root->appendChild($child);

// Save to a file
if ($doc->save('output.xml')) {
    echo 'XML document saved successfully.';
} else {
    echo 'Failed to save XML document.';
}
?>

Die Methode save() gibt bei Erfolg true und bei einem Fehler false zurück. Stellen Sie sicher, dass das Zielverzeichnis für Ihren PHP-Prozess beschreibbar ist.

Knoten ändern und löschen

PHP XML DOM ermöglicht es Ihnen, vorhandene Knoten zu aktualisieren oder sie aus dem Dokumentbaum zu entfernen. Sie können Textinhalte ändern, Attribute aktualisieren oder gesamte Elemente mit standardmäßigen DOM-Methoden löschen.

php
<?php
libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->load('filename.xml');

$root = $doc->documentElement;
$child = $root->childNodes->item(0);

// Modify text content
if ($child) {
    $child->nodeValue = 'updated text';
}

// Delete a node
if ($child) {
    $root->removeChild($child);
}

$doc->save('filename.xml');
?>

Dieses Beispiel lädt eine vorhandene XML-Datei, ruft den ersten untergeordneten Knoten ab, aktualisiert dessen Textinhalt, entfernt ihn vom übergeordneten Element und speichert die Änderungen zurück in die Datei. Rufen Sie nach strukturellen Änderungen immer save() auf, um diese zu speichern.

XML-Dokumente abfragen

Neben dem Erstellen und Ändern von XML-Dokumenten ermöglicht PHP XML DOM auch deren Abfrage mit verschiedenen Methoden und Ausdrücken, wie z. B. XPath (XML Path Language). Dies ist eine leistungsstarke und flexible Sprache zum Auswählen von Knoten und Werten in einem XML-Dokument. Sie können XPath-Ausdrücke verwenden, um Elemente, Attribute, Textknoten und Kommentare zu finden, die bestimmten Kriterien entsprechen, wie z. B. einem bestimmten Tag-Namen, Attributwert oder Textinhalt. Hier ist ein Beispiel, wie Sie XPath verwenden, um alle Elemente mit einem bestimmten Attributwert zu finden:

php
<?php
libxml_use_internal_errors(true);
$doc = new DOMDocument();
if ($doc->load('filename.xml')) {
    $xpath = new DOMXPath($doc);
    $elements = $xpath->query("//element[@attribute='value']");
    foreach ($elements as $element) {
        // do something with the element
    }
}
?>

Dieser Code lädt eine XML-Datei namens 'filename.xml' in ein DOMDocument-Objekt, erstellt ein neues DOMXPath-Objekt mit dem Dokument als Kontext und verwendet die query-Methode, um mit einem XPath-Ausdruck alle Elemente zu finden, die ein Attribut namens 'attribute' mit dem Wert 'value' besitzen. Anschließend durchläuft er die resultierende NodeList der Elemente und führt für jedes Element eine bestimmte Aktion aus.

Fazit

PHP XML DOM ist eine leistungsstarke und flexible Erweiterung für PHP, mit der Sie XML-Dokumente mühelos und effizient bearbeiten können. Egal, ob Sie XML-Daten erstellen, ändern oder abfragen müssen – PHP XML DOM bietet eine umfangreiche Sammlung von Klassen und Funktionen, um Ihre Ziele zu erreichen. Durch die Befolgung der in diesem Leitfaden beschriebenen Best Practices und Techniken können Sie zu einem kompetenten und effektiven XML-Entwickler mit PHP XML DOM werden. Wir hoffen, dass Ihnen dieser Leitfaden hilfreich und informativ war. Wenn Sie Feedback oder Vorschläge haben, teilen Sie uns dies bitte in den Kommentaren unten mit.

Praxis

Was können Sie mit dem PHP XML DOM tun?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.