Konvertieren Sie XML in PHP in assoziatives Array

Konvertieren Sie XML in PHP in assoziatives Array

XML (Extensible Markup-Sprache) ist eine Art von Markup-Sprache, mit der die Daten in einem menschlichen lesbaren Format gespeichert werden. Es unterscheidet sich von anderen Markup -Sprachen. Jedes Tag dieser Sprache ist benutzerdefiniert. Die Verwendung von XML ist die bessere Lösung, um eine kleine Datenmenge zu speichern, wenn Sie keine Datenbank zum Speichern von Daten verwenden möchten. Die Daten aus dem XML -Dokument können einfach zugreifen und in jeder Webanwendung mit einem PHP -Skript verwendet werden. Wie das XML -Dokument analysiert und in ein assoziatives Array gespeichert werden kann, wird in diesem Tutorial gezeigt.

Notwendige Funktionen

Einige integrierte Funktionen werden verwendet, um den XML-Inhalt in ein assoziatives PHP-Array umzuwandeln. Die Zwecke verschiedener Funktionen werden nachstehend erläutert.

Datei_get_Contents ():

Diese Funktion gibt die String -Daten zurück, indem XML -Daten konvertiert werden. Es dauert jeden XML -Dateinamen als Argument.

simplexml_load_string ():

Diese Funktion gibt das XML -Objekt zurück, indem die XML -String -Daten konvertiert werden. Es dauert XML -String -Daten als Argument.

simplexml_load_file ():

Diese Funktion gibt das XML -Objekt zurück, indem XML -Dateiinhalte konvertiert werden. Es nimmt den XML -Dateinamen als Argument an.

Simplexmlelement ():

Es wird verwendet, um ein XML -Objekt aus XML -Daten zu erstellen. Es nimmt den XML -Inhaltswert als Argument an.

json_encode ():

Es gibt das JSON -Objekt zurück, indem das XML -Objekt konvertiert. Es nimmt die XML -Objektvariable als Argument an.

JSON_DECODE ():

Es gibt das assoziative PHP -Array zurück, indem JSON -Daten konvertiert werden. Es nimmt die JSON -Objektvariable als Argument.

XML -Datei erstellen

Sie müssen eine XML -Datei erstellen oder XML -Daten im Skript definieren, um den Weg beim Konvertieren von XML -Daten in ein assoziatives PHP -Array zu kennen. Erstellen Sie eine XML -Datei namens Kurse.XML mit dem folgenden Inhalt und speichern Sie es an dem Ort, an dem sich das PHP -Skript befindet. Die Datei enthält untergeordnete Elemente unter einem übergeordneten Element. Ein zweidimensionales assoziatives Array erzeugt also, nachdem die folgende XML-Datei in ein PHP-Array konvertiert wird.

Kurse.xml



Web Programmierung
6 Monate


Die Freude am PHP -Programmieren
Alan Forbes
Plum Island


PHP & MySQL Novice nach Ninja
Tom Butler & Kevin Yank
SitePoint


Kopf zu First Php & Mysql
Lynn Beighley & Michael Morrison
O'Reilly


Beispiel 1: Umwandeln Sie den XML-Dateiinhalt in ein assoziatives Array ohne Überprüfung Fehler

Das folgende Skript zeigt die Verwendungen von File_get_Contents () und simplexml_load_string () zum Erstellen von XML -Objekten an. Hier die Kurse.Die XML -Datei wird zur Konvertierung verwendet, die zuvor erstellt wurde. Als nächstes werden die Funktion json_encode () und json_decode () verwendet, um das assoziative Array nach dem Konvertieren des XML -Dateiinhalts zu erhalten. Wenn im XML -Inhalt kein Fehler vorliegt, wird durch das folgende Skript kein Fehler angezeigt. Hier,

 Tag wird verwendet, um das Array auf formatierte Weise zu drucken.

// Definieren Sie die vorhandene XML -Datei
$ xml = "Kurse.xml ";
// Lesen Sie den vollständigen Inhalt der XML -Datei als XML -Zeichenfolge durch
$ xmldata = file_get_contents ($ xml);
// XML -String -Daten in XML -Objekt umwandeln
$ xmlobject = simplexml_load_string ($ xmldata);
// XML -Objekt in JSON -Objekt umwandeln
$ jsonObject = json_encode ($ xmlobject);
// JSON -Objekt in ein assoziatives Array umwandeln
$ assarray = json_decode ($ jsonObject, true);
// Drucken Sie die Struktur des assoziativen Arrays
Echo "

";
print_r ($ assarray);
Echo "

";
?>

Ausgang:

Nach der Ausführung des PHP -Skripts wird die folgende Ausgabe angezeigt. Hier wird ein zweidimensionales Array basierend auf dem Inhalt der XML-Datei, Kurse, generiert.xml.

Beispiel-2: Konvertieren Sie den XML-Dateiinhalt in ein assoziatives Array mit Überprüfungsfehler

Es ist besser, Fehler beim Konvertieren von XML in ein assoziatives Array zu überprüfen. Es hilft dem Codierer, den Code zu debuggen, wenn die Fehlerprüfung im Skript implementiert ist. Das folgende Skript zeigt die Möglichkeit, XML -Dateiinhalte in ein assoziatives Array umzuwandeln, indem die Funktion von SimplexML_Load_file () mit der Fehlerbehandlung verwendet wird. Die Funktion libxml_use_internal_errors () wird mit einem tatsächlichen Wert verwendet, um das Fehlerbehandlungen zu aktivieren. Wenn der im Skript verwendete XML -Dateiinhalt einen Fehler enthält, gibt die Funktion simplexml_load_file () false zurück, und die Fehlermeldung wird mithilfe der Funktion libxml_get_errors () gedruckt. Wenn in der XML-Datei kein Fehler vorliegt, wandelt sich der Inhalt der Datei ordnungsgemäß in ein zweidimensionales assoziatives Array um.

// Benutzerfehlerbehandlung aktivieren
libxml_use_internal_errors (true);
// XML -Objekt erstellen
$ objxml = simplexml_load_file ("Kurse.xml ");
// Fehler drucken, wenn das XML -Objekt false zurückgibt
if ($ objxml === false)
Echo "Es gab Fehler, die die XML -Datei analysierten.\N";
foreach (libxml_get_errors () als $ error)
echo $ error-> meldung;

Ausfahrt;

// XML -Objekt in JSON -Objekt umwandeln
$ objjson = json_encode ($ objxml);
// JSON -Objekt in ein assoziatives Array umwandeln
$ assarr = json_decode ($ objjson, true);
// Drucken Sie die Struktur des assoziativen Arrays
Echo "
";
print_r ($ assarr);
Echo "
";
?>

Ausgang:

Nach der Ausführung des PHP -Skripts wird die folgende Ausgabe angezeigt. Hier gibt es in der XML -Datei kein Fehler. Ein zweidimensionales Array hat also wie das vorherige Beispiel erzeugt, basierend auf dem Inhalt der XML-Datei, Kurse.xml.

Beispiel-3: Umwandeln Sie den XML-Inhalt in ein assoziatives Array

Das folgende Skript zeigt die Art und Weise, wie XML -Daten in ein assoziatives Array konvertieren, indem es die Funktion von SimplexMlelement () verwendet. Im Skript wird der XML -Inhalt in einer Variablen mit dem Namen $ XML gespeichert, die als Argument der Funktion, simplexmlelement () verwendet wird, wird verwendet. Als nächstes werden die Funktion json_encode () und json_decode () verwendet, um das assoziative Array nach dem Konvertieren des XML -Dateiinhalts zu erhalten.

// Definieren Sie die XML -Variable
$ xml = <<


[email protected]

12/a, Dhanmondi
Dhaka



[email protected]

156, Motijeel
Dhaka



[email protected]

21/b, Mogbazar
Dhaka



Xml;
// XML -Objekt erstellen
$ xmlobject = new Simplexmlelement ($ xml);
// JSON -Objekt erstellen
$ jsonObject = json_encode ($ xmlobject);
// JSON -Objekt in ein assoziatives Array umwandeln
$ assarray = json_decode ($ jsonObject, true);
// Drucken Sie die Struktur des assoziativen Arrays
Echo "
";
print_r ($ assarray);
Echo "
";
?>

Ausgang:

Nach der Ausführung des PHP -Skripts wird die folgende Ausgabe angezeigt. Hier wird ein zweidimensionales Array basierend auf dem Inhalt der XML-Variablen $ XML generiert.

Abschluss:

Es gab drei verschiedene Möglichkeiten, XML -Inhalte in ein assoziatives Array umzuwandeln, das in diesem Tutorial gezeigt wurde. Dies hilft den Lesern, den Weg zur Arbeit mit XML -Daten zu kennen und die Daten aus dem XML.