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 Extensible Markup Language, ein tagbasiertes Format, mit dem Sie benutzerdefinierte Tags definieren können, um Daten zu strukturieren und zu transportieren.
  • 🌳 Das DOM: Das Document Object Model (DOM) betrachtet ein XML- oder HTML-Dokument als Baumstruktur, sodass der Code durch die Knoten navigieren und diese bearbeiten kann.
  • 🔄 XML-Parser: Ein Parser wandelt ein XML-Dokument in ein DOM-Objekt um, das von PHP verarbeitet werden kann. JavaSkript oder Python kann lesen und ändern.
  • ???? XML lesen: simplexml_load_file lädt eine Datei in Objekte, sodass Sie auf Datensätze mit Pfeilsyntax wie $xml->record->name zugreifen können.
  • XML erstellen: Die Klasse DOMDocument erstellt ein Dokument Knoten für Knoten mit createElement und appendChild und speichert die Datei anschließend.
  • SimpleXML vs DOM: SimpleXML eignet sich zum schnellen Lesen, während DOMDocument für die präzise Erstellung und komplexe Manipulation geeignet ist.
  • 🤖 KI-Assistent: KI-Tools können Parsing-Code für eine bestimmte XML-Struktur generieren und zwischen XML-, JSON- und PHP-Arrays konvertieren.

PHP und XML

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

Lesen Sie XML mit 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

Erstellen Sie ein XML-Dokument mit PHP

Öffnen Sie die Datei movies_list.xml.

Erstellen Sie ein XML-Dokument mit PHP

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.

Häufig gestellte Fragen

Beide Formate speichern strukturierte Daten, aber XML verwendet Tags und unterstützt Attribute, Kommentare und Schemata, während JSON schlanker ist und direkt auf Arrays und Objekte abgebildet wird. JSON ist gängig für APIs; XML eignet sich für Dokumente und Konfigurationen.

Laden Sie die Datei mit SimpleXML oder DOMDocument, ändern Sie die Knotenwerte oder Attribute und speichern Sie sie anschließend zurück. Bearbeiten Sie mit SimpleXML die Eigenschaft und rufen Sie `asXML('file.xml')` auf; bearbeiten Sie mit DOMDocument den Knoten und rufen Sie `save()` auf.

XPath ist eine Abfragesprache zum Auswählen von Knoten in einem XML-Dokument. In PHP rufen Sie `$xml->xpath('//record/name')` mit SimpleXML auf oder verwenden Sie die Klasse DOMXPath, um übereinstimmende Elemente ohne Suche abzurufen.ping durch den gesamten Baum.

Ja. Die KI kann mithilfe von simplexml_load_string, json_encode und json_decode Code generieren, um zwischen den Formaten zu konvertieren und Daten zu kennzeichnen, die nicht eindeutig zugeordnet werden können, wie z. B. XML-Attribute oder gemischte Inhalte. Überprüfen Sie das Ergebnis.

Ja. Fügen Sie ein XML-Beispiel ein, und die KI kann SimpleXML- oder DOMDocument-Code generieren, der genau die benötigten Elemente und Attribute liest, einschließlich Schleifen für wiederholte Datensätze. Testen Sie es mit echten Dateien.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: