PHP -SimpleXML-Parser
SimpleXML ist eine PHP-Erweiterung, mit der wir XML-Daten einfach bearbeiten und abrufen können.
Der SimpleXML-Parser
SimpleXML ist ein baumbasierter Parser.
SimpleXML bietet eine einfache Möglichkeit, den Namen, die Attribute und den Textinhalt eines Elements zu erhalten, wenn Sie die Struktur oder das Layout des XML-Dokuments kennen.
SimpleXML verwandelt ein XML-Dokument in eine Datenstruktur, die Sie wie eine Sammlung von Arrays und Objekten durchlaufen können.
Im Vergleich zu DOM oder dem Expat-Parser benötigt SimpleXML weniger Codezeilen, um Textdaten aus einem Element zu lesen.
Installation
Ab PHP 5 sind die SimpleXML-Funktionen Teil des PHP-Kerns. Zur Nutzung dieser Funktionen ist keine Installation erforderlich.
PHP SimpleXML - Aus String lesen
Die PHP simplexml_load_string()
-Funktion wird verwendet, um XML-Daten aus einem String zu lesen.
Angenommen, wir haben eine Variable, die XML-Daten enthält, wie diese:
$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>";
Das folgende Beispiel zeigt, wie die simplexml_load_string()
Funktion zum Lesen von XML-Daten aus einer Zeichenfolge verwendet wird:
Beispiel
<?php
$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>";
$xml=simplexml_load_string($myXMLData) or die("Error: Cannot create object");
print_r($xml);
?>
Die Ausgabe des obigen Codes lautet:
SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )
Tipp zur Fehlerbehandlung: Verwenden Sie die libxml-Funktionalität, um alle XML-Fehler beim Laden des Dokuments abzurufen, und iterieren Sie dann über die Fehler. Das folgende Beispiel versucht, einen fehlerhaften XML-String zu laden:
Beispiel
<?php
libxml_use_internal_errors(true);
$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<document>
<user>John Doe</wronguser>
<email>[email protected]</wrongemail>
</document>";
$xml = simplexml_load_string($myXMLData);
if ($xml === false) {
echo "Failed loading XML: ";
foreach(libxml_get_errors() as $error) {
echo "<br>", $error->message;
}
} else {
print_r($xml);
}
?>
Die Ausgabe des obigen Codes lautet:
Failed loading XML:
Opening and ending tag mismatch: user line 3 and wronguser
Opening and ending tag mismatch: email line 4 and wrongemail
PHP SimpleXML - Aus Datei lesen
Die PHP simplexml_load_file()
-Funktion wird verwendet, um XML-Daten aus einer Datei auszulesen.
Angenommen, wir haben eine XML-Datei namens " note.xml ", die so aussieht:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Das folgende Beispiel zeigt, wie die simplexml_load_file()
Funktion zum Lesen von XML-Daten aus einer Datei verwendet wird:
Beispiel
<?php
$xml=simplexml_load_file("note.xml") or die("Error: Cannot create object");
print_r($xml);
?>
Die Ausgabe des obigen Codes lautet:
SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )
Tipp: Das nächste Kapitel zeigt, wie man Knotenwerte aus einer XML-Datei mit SimpleXML erhält/abruft!
Mehr PHP SimpleXML
Weitere Informationen zu den PHP-SimpleXML-Funktionen finden Sie in unserer PHP-SimpleXML-Referenz .