Convertir XML en un array en PHP

Subodh Poudel 30 enero 2023
  1. Utilice las funciones simplexml_load_string(), json_encode() y json_decode() para convertir XML en un array en PHP
  2. Utilice la función simplexml_load_file() y cámbielo en un arreglo para convertir XML en un arreglo en PHP
Convertir XML en un array en PHP

Este tutorial presentará cómo convertir XML en un array en PHP.

Utilice las funciones simplexml_load_string(), json_encode() y json_decode() para convertir XML en un array en PHP

Podemos representar datos XML como un array PHP con una serie de conversiones.

Podemos utilizar la función simplexml_load_string() para interpretar la cadena XML como un objeto. La función toma la cadena XML como primer parámetro.

Podemos especificar una clase como segunda opción. La función devolverá el objeto de la clase especificada. El tercer parámetro de la función son las constantes LIBXML.

A continuación, deberíamos convertir el objeto en JSON usando la función json_encode(). Para la parte final, podemos usar la función json_decode() con el parámetro TRUE para convertir el JSON en un array.

Por ejemplo, considere los siguientes datos XML.

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

Cree una variable $xmlstr y almacene todo el XML como una cadena en la variable. A continuación, cree otra variable $XML y asígnele la función simplexml_load_string().

En la función, establezca $xmlstr como primer parámetro y establezca SimpleXMLElement como clase y LIBXML_NOCDATA como tercer parámetro. A continuación, convierta $XML en JSON utilizando la función json_encode().

Luego, convierta el JSON en un array con la función json_decode(). No olvide incluir TRUE como segundo parámetro de la función json_decode(). Finalmente, imprima el array.

Aquí, la constante LIBXML_NOCDATA fusiona los datos de caracteres (CDATA) como nodos de texto. Por lo tanto, podemos convertir XML en un array de PHP utilizando estas diversas funciones de 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);

Producción :

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

Utilice la función simplexml_load_file() y cámbielo en un arreglo para convertir XML en un arreglo en PHP

Podemos usar la función simplexml_load_file() para interpretar el XML en un objeto. Luego, podemos convertir el objeto en un array al encasillarlo.

La función toma la ruta del archivo XML como primer parámetro. La función es casi similar a la función simplexml_load_string(). Podemos crear un archivo XML y usar su ruta en la función simplexml_load_file().

Por ejemplo, podemos usar el mismo archivo XML en el primer método, guardar el archivo XML como file.xml y crear una variable $XML en PHP. Asigne simplexml_load_file() a la variable con file.xml como parámetro.

A continuación, cree una variable $arr y encasille la variable $XML en un array. Asigne el array de conversión tipográfica a la variable $arr. Finalmente, imprima la variable $arr usando la función print_r().

De esta forma, podemos utilizar la función simplexml_load_file() para cargar el archivo XML y convertirlo en un array.

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

Producción :

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

Artículo relacionado - PHP XML

Artículo relacionado - PHP Array