Konvertieren von XML in ein assoziatives Array in PHP

Convert Xml Associative Array Php



XML (Extensible Markup Language) ist eine Art von Markup-Sprache, die verwendet wird, um die Daten in einem für Menschen lesbaren Format zu speichern. Es unterscheidet sich von anderen Auszeichnungssprachen. 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 über ein PHP-Skript in jeder Webanwendung abgerufen und verwendet werden. In diesem Tutorial wird gezeigt, wie das XML-Dokument geparst und in einem assoziativen Array gespeichert werden kann.

Notwendige Funktionen

Einige eingebaute Funktionen werden verwendet, um den XML-Inhalt in ein assoziatives PHP-Array zu konvertieren. Die Zwecke der verschiedenen Funktionen werden im Folgenden erläutert.







file_get_contents():



Diese Funktion gibt die Zeichenfolgendaten zurück, indem sie beliebige XML-Daten konvertiert. Als Argument wird ein beliebiger XML-Dateiname verwendet.



simplexml_load_string():





Diese Funktion gibt das XML-Objekt zurück, indem sie die XML-String-Daten konvertiert. Als Argument werden XML-String-Daten verwendet.

simplexml_load_file():



Diese Funktion gibt das XML-Objekt zurück, indem sie den Inhalt der XML-Datei konvertiert. Als Argument wird der XML-Dateiname verwendet.

SimpleXMLElement():

Es wird verwendet, um aus XML-Daten ein XML-Objekt zu erstellen. Als Argument wird der XML-Inhaltswert verwendet.

json_encode():

Es gibt das JSON-Objekt zurück, indem es das XML-Objekt konvertiert. Als Argument wird die XML-Objektvariable verwendet.

json_decode():

Es gibt das assoziative PHP-Array zurück, indem es JSON-Daten konvertiert. Als Argument wird die JSON-Objektvariable verwendet.

XML-Datei erstellen

Sie müssen eine XML-Datei erstellen oder XML-Daten im Skript definieren, um zu wissen, wie XML-Daten in ein assoziatives PHP-Array konvertiert werden. Erstellen Sie eine XML-Datei namenscourses.xml mit dem folgenden Inhalt und speichern Sie sie an dem Speicherort, an dem sich das PHP-Skript befindet. Die Datei enthält untergeordnete Elemente unter einem übergeordneten Element. So wird nach der Konvertierung der folgenden XML-Datei in ein PHP-Array ein zweidimensionales assoziatives Array generiert.

kurse.xml

Ausführung='1.0'?>
>
>Web Programmierung>
>6 Monate>
>
>
>Die Freude an der PHP-Programmierung>
>Alan Forbes>
>Pflaumeninsel>
>
>
>PHP& MySQL Anfänger für Ninja
Tom Butler & Kevin Yank
SitePoint


Von Anfang an PHP & MySQL
Lynn Beighley & Michael Morrison
O’Reilly


Beispiel-1: XML-Dateiinhalt in ein assoziatives Array umwandeln, ohne Fehler zu prüfen

Das folgende Skript zeigt die Verwendung der Funktionen file_get_contents() und simplexml_load_string() zum Erstellen von XML-Objekten. Hier wird die zuvor erstellte Dateicourses.xml für die Konvertierung verwendet. Als nächstes werden die Funktionen json_encode() und json_decode() verwendet, um das assoziative Array nach der Konvertierung des XML-Dateiinhalts abzurufen. Wenn kein Fehler im XML-Inhalt vorhanden ist, wird kein Fehler durch das folgende Skript angezeigt. Hier, |_+_| -Tag wird verwendet, um das Array formatiert zu drucken.



//Definieren der vorhandenen XML-Datei
$xml = 'kurse.xml';

//Lesen Sie den vollständigen Inhalt der XML-Datei als XML-String
$xmlData = file_get_contents ($xml);

// XML-String-Daten in XML-Objekt umwandeln
$xmlObject = simplexml_load_string ($xmlData);

// XML-Objekt in JSON-Objekt konvertieren
$jsonObject = json_encode ($xmlObject);

//JSON-Objekt in ein assoziatives Array umwandeln
$assArray = json_decode ($jsonObject, wahr);

//Die Struktur des assoziativen Arrays ausgeben
rauswerfen '
  
';

?>

Ausgabe:

Die folgende Ausgabe erscheint nach der Ausführung des PHP-Skripts. Dabei wird aus dem Inhalt der XML-Dateicourses.xml ein zweidimensionales Array generiert.

Beispiel-2: Konvertieren von XML-Dateiinhalten in ein assoziatives Array mit Prüffehler

Es ist besser, Fehler beim Konvertieren von XML in ein assoziatives Array zu überprüfen. Es hilft dem Coder, den Code zu debuggen, wenn die Fehlerprüfung im Skript implementiert ist. Das folgende Skript zeigt die Möglichkeiten zum Konvertieren von XML-Dateiinhalten in ein assoziatives Array mithilfe der Funktion simplexml_load_file() mit Fehlerbehandlung. Die Funktion libxml_use_internal_errors() wird mit dem Wert TRUE verwendet, um die Fehlerbehandlung zu aktivieren. Wenn der im Skript verwendete Inhalt der XML-Datei einen Fehler enthält, gibt die Funktion simplexml_load_file() false zurück, und die Fehlermeldung wird mit der Funktion libxml_get_errors() ausgegeben. Wenn in der XML-Datei kein Fehler vorhanden ist, wird der Inhalt der Datei ordnungsgemäß in ein zweidimensionales assoziatives Array konvertiert.



//Benutzerfehlerbehandlung aktivieren
libxml_use_internal_errors (WAHR);

//XML-Objekt erstellen
$ objXml = simplexml_load_file ('kurse.xml');

//Druckfehler, wenn das XML-Objekt false zurückgibt
wenn ($ objXml === FALSCH) {
rauswerfen 'Beim Parsen der XML-Datei sind Fehler aufgetreten. ';
für jeden( libxml_get_errors () wie $ Fehler) {
rauswerfen $ Fehler->Botschaft;
}
Ausfahrt ;
}

// XML-Objekt in JSON-Objekt konvertieren
$ objJson = json_encode ($ objXml);
//JSON-Objekt in ein assoziatives Array umwandeln
$assar = json_decode ($ objJson, WAHR);

//Die Struktur des assoziativen Arrays ausgeben
rauswerfen '
';  
print_r ($assArray);
echo '
'
;

?>

Ausgabe:

Die folgende Ausgabe erscheint nach der Ausführung des PHP-Skripts. Hier liegt kein Fehler in der XML-Datei vor. Es wurde also ein zweidimensionales Array wie im vorherigen Beispiel basierend auf dem Inhalt der XML-Dateicourses.xml generiert.

Beispiel-3: XML-Inhalt in ein assoziatives Array konvertieren

Das folgende Skript zeigt, wie XML-Daten mithilfe der Funktion SimpleXMLElement() in ein assoziatives Array konvertiert werden. Im Skript wird der XML-Inhalt in einer Variablen namens $xml gespeichert, die als Argument der Funktion SimpleXMLElement() verwendet wird. Als nächstes werden die Funktionen json_encode() und json_decode() verwendet, um das assoziative Array nach der Konvertierung des XML-Dateiinhalts abzurufen.



//Definieren der XML-Variablen
$xml = <<


[E-Mail geschützt]

12 / A, Dhanmondi
Dhaka



[E-Mail geschützt]

156, Motiv
Dhaka



[E-Mail geschützt]

21 / B, Mogbazar
Dhaka



XML
;

// XML-Objekt erstellen
$xmlObject = NeuSimpleXMLElement($xml);
//JSON-Objekt erstellen
$jsonObject = json_encode ($xmlObject);
//JSON-Objekt in ein assoziatives Array umwandeln
$assArray = json_decode ($jsonObject, wahr);

//Die Struktur des assoziativen Arrays ausgeben
rauswerfen '
';  
print_r ($assarr);
echo '
'
;

?>

Ausgabe:

Die folgende Ausgabe erscheint nach der Ausführung des PHP-Skripts. Hier wird aus dem Inhalt der XML-Variablen $xml ein zweidimensionales Array generiert.

Abschluss:

Es gab drei verschiedene Möglichkeiten, XML-Inhalte in ein assoziatives Array zu konvertieren, die in diesem Tutorial gezeigt wurden. Dies wird den Lesern helfen, die Arbeit mit XML-Daten zu kennen und die Daten aus dem XML-Inhalt mithilfe eines PHP-Skripts einfach zu parsen.