Convertir XML en tableau en PHP

Subodh Poudel 22 janvier 2022
  1. Utilisez les fonctions simplexml_load_string(), json_encode() et json_decode() pour convertir XML en tableau en PHP
  2. Utilisez la fonction simplexml_load_file() et transposez-la dans un tableau pour convertir XML en tableau en PHP
Convertir XML en tableau en PHP

Ce tutoriel présentera comment convertir XML en un tableau en PHP.

Utilisez les fonctions simplexml_load_string(), json_encode() et json_decode() pour convertir XML en tableau en PHP

Nous pouvons représenter les données XML sous la forme d’un tableau PHP avec une série de conversions.

Nous pouvons utiliser la fonction simplexml_load_string() pour interpréter la chaîne XML comme un objet. La fonction prend la chaîne XML comme premier paramètre.

Nous pouvons spécifier une classe comme deuxième option. La fonction retournera l’objet de la classe spécifiée. Le troisième paramètre de la fonction sont les constantes LIBXML.

Ensuite, nous devons convertir l’objet en JSON à l’aide de la fonction json_encode(). Pour la dernière partie, nous pouvons utiliser la fonction json_decode() avec le paramètre TRUE pour convertir le JSON en un tableau.

Par exemple, considérons les données XML suivantes.

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

Créez une variable $xmlstr et stockez tout le XML sous forme de chaîne dans la variable. Ensuite, créez une autre variable $XML et affectez-lui la fonction simplexml_load_string().

Dans la fonction, définissez le $xmlstr comme premier paramètre et définissez SimpleXMLElement comme classe et LIBXML_NOCDATA comme troisième paramètre. Ensuite, convertissez $XML en JSON à l’aide de la fonction json_encode().

Ensuite, convertissez le JSON en tableau avec la fonction json_decode(). N’oubliez pas d’inclure TRUE comme deuxième paramètre de la fonction json_decode(). Enfin, imprimez le tableau.

Ici, la constante LIBXML_NOCDATA fusionne les données de caractères (CDATA) en tant que nœuds de texte. Ainsi, nous pouvons convertir XML en un tableau PHP en utilisant ces différentes fonctions PHP.

$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);

Production :

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

Utilisez la fonction simplexml_load_file() et transposez-la dans un tableau pour convertir XML en tableau en PHP

Nous pouvons utiliser la fonction simplexml_load_file() pour interpréter le XML dans un objet. Ensuite, nous pouvons convertir l’objet en un tableau en le transtypant.

La fonction prend le chemin du fichier XML comme premier paramètre. La fonction est presque similaire à la fonction simplexml_load_string(). Nous pouvons créer un fichier XML et utiliser son chemin dans la fonction simplexml_load_file().

Par exemple, nous pouvons utiliser le même fichier XML dans la première méthode, enregistrer le fichier XML sous file.xml, et créer une variable $XML en PHP. Affectez le simplexml_load_file() à la variable avec file.xml comme paramètre.

Ensuite, créez une variable $arr et transtypez la variable $XML dans un tableau. Affectez le tableau transtypé à la variable $arr. Enfin, imprimez la variable $arr à l’aide de la fonction print_r().

De cette façon, nous pouvons utiliser la fonction simplexml_load_file() pour charger le fichier XML et le convertir en un tableau.

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

Production :

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

Article connexe - PHP XML

Article connexe - PHP Array