Convertir XML en un array en PHP
-
Utilice las funciones
simplexml_load_string()
,json_encode()
yjson_decode()
para convertir XML en un array en PHP -
Utilice la función
simplexml_load_file()
y cámbielo en un arreglo para convertir XML en un arreglo 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 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.
LinkedInArtículo relacionado - PHP XML
Artículo relacionado - PHP Array
- Cómo determinar la primera y la última iteración en un bucle de foreach en PHP
- Cómo convertir un array a una cadena en PHP
- Cómo obtener el primer elemento de un array en PHP
- Cómo hacer eco o imprimir un array en PHP
- Cómo eliminar un elemento de un array en PHP
- Cómo quitar elementos de array vacíos en PHP