Konvertieren von XML in ein Array in PHP

Subodh Poudel 22 Januar 2022
  1. Verwenden Sie die Funktionen simplexml_load_string(), json_encode() und json_decode(), um XML in ein Array in PHP zu konvertieren
  2. Verwenden Sie die Funktion simplexml_load_file() und schreiben Sie sie in ein Array, um XML in ein Array in PHP zu konvertieren
Konvertieren von XML in ein Array in PHP

In diesem Tutorial erfahren Sie, wie Sie XML in PHP in ein Array konvertieren.

Verwenden Sie die Funktionen simplexml_load_string(), json_encode() und json_decode(), um XML in ein Array in PHP zu konvertieren

Wir können XML-Daten als PHP-Array mit einer Reihe von Konvertierungen darstellen.

Mit der Funktion simplexml_load_string() können wir den XML-String als Objekt interpretieren. Die Funktion verwendet den XML-String als ersten Parameter.

Als zweite Option können wir eine Klasse angeben. Die Funktion gibt das Objekt der angegebenen Klasse zurück. Der dritte Parameter der Funktion sind die LIBXML-Konstanten.

Als nächstes sollten wir das Objekt mit der Funktion json_encode() in JSON konvertieren. Für den letzten Teil können wir die Funktion json_decode() mit dem Parameter TRUE verwenden, um den JSON in ein Array zu konvertieren.

Betrachten Sie beispielsweise die folgenden XML-Daten.

<students>
 <bachelors>
 <name>Jack</name>
 <name>Hari</name>
 </bachelors>
 <masters>
 <name>Sia</name>
 <name>Paul</name>
 </masters>
</students>

Erstellen Sie eine Variable $xmlstr und speichern Sie das gesamte XML als String in der Variablen. Als nächstes erstellen Sie eine weitere Variable $XML und weisen ihr die Funktion simplexml_load_string() zu.

Setzen Sie in der Funktion als ersten Parameter $xmlstr und als Klasse SimpleXMLElement und als dritten Parameter LIBXML_NOCDATA. Als nächstes konvertieren Sie $XML mit der Funktion json_encode() in JSON.

Konvertieren Sie dann das JSON mit der Funktion json_decode() in ein Array. Vergessen Sie nicht, TRUE als zweiten Parameter der Funktion json_decode() anzugeben. Drucken Sie schließlich das Array.

Dabei führt die Konstante LIBXML_NOCDATA die Zeichendaten (CDATA) als Textknoten zusammen. Somit können wir XML mithilfe dieser verschiedenen PHP-Funktionen in ein PHP-Array konvertieren.

$xmlstr ='
<students>
 <bachelors>
 <name>Jack</name>
 <name>Hari</name>
 </bachelors>
 <masters>
 <name>Sia</name>
 <name>Paul</name>
 </masters>
</students>';
$XML = simplexml_load_string($xmlstr, "SimpleXMLElement", LIBXML_NOCDATA);
$json = json_encode($XML);
$arr = json_decode($json,TRUE);
print_r($arr);

Ausgabe:

Array ( [bachelors] => Array ( [name] => Array ( [0] => Jack [1] => Hari ) ) [masters] => Array ( [name] => Array ( [0] => Sia [1] => Paul ) ) ) 

Verwenden Sie die Funktion simplexml_load_file() und schreiben Sie sie in ein Array, um XML in ein Array in PHP zu konvertieren

Wir können die Funktion simplexml_load_file() verwenden, um das XML in ein Objekt zu interpretieren. Dann können wir das Objekt durch Typumwandlung in ein Array konvertieren.

Die Funktion verwendet den Pfad der XML-Datei als ersten Parameter. Die Funktion ähnelt fast der Funktion simplexml_load_string(). Wir können eine XML-Datei erstellen und ihren Pfad in der Funktion simplexml_load_file() verwenden.

Zum Beispiel können wir in der ersten Methode dieselbe XML-Datei verwenden, die XML-Datei als file.xml speichern und eine Variable $XML in PHP erstellen. Weisen Sie der Variablen simplexml_load_file() mit file.xml als Parameter zu.

Als nächstes erstellen Sie eine Variable $arr und geben die Variable $XML in ein Array um. Weisen Sie das typisierte Array der Variablen $arr zu. Geben Sie zum Schluss die Variable $arr mit der Funktion print_r() aus.

Auf diese Weise können wir mit der Funktion simplexml_load_file() die XML-Datei laden und in ein Array umwandeln.

$XML = simplexml_load_file('file.xml');
$arr = (array)$XML;
print_r($arr);

Ausgabe:

Array ( [bachelors] => SimpleXMLElement Object ( [name] => Array ( [0] => Jack [1] => Hari ) ) [masters] => SimpleXMLElement Object ( [name] => Array ( [0] => Sia [1] => Paul ) ) ) 
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

Verwandter Artikel - PHP XML

Verwandter Artikel - PHP Array