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: