xml2array es un función hecha en PHP que nos permitirá convertir datos en formato XML a un array.
[ad#adsense-1]
Obteniendo la función
Puedes descargar esta función desde la web del autor de xml2array y guardar el código en un archivo llamado xml2array.php
Utilizando xml2array
Para utilizar esta función, pasamos como parámetro una cadena que contiene el XML y lo retornará en un array.
Archivo demo.xml
[xml]
nokia
siemens
samsung
lg
[/xml]
Archivo sample.php
[php]
require(«xml2array.php»);
$contents = file_get_contents(‘demo.xml’);
$result = xml2array($contents);
print_r($result);
[/php]
El resultado de este código es:
[php]
Array
(
[lang] => Array
(
[attr] => Array
(
[type] => moviles
)
[name] => Array
(
[0] => Array
(
[value] => nokia
[attr] => Array ( [id] => 1 )
)
[1] => Array
(
[value] => siemens
[attr] => Array ( [id] => 2 )
)
[2] => Array
(
[value] => samsung
[attr] => Array ( [id] => 3 )
)
[3] => Array
(
[value] => lg
[attr] => Array ( [id] => 4 )
)
)
)
)
[/php]
Entonces si deseamos conocer cuales son los valores de los móviles con sus respectivos identificadores, haríamos lo siguiente:
[php]
require(«xml2array.php»);
$contents = file_get_contents(‘demo.xml’);
$result = xml2array($contents);
$langs = $result[‘lang’][‘name’];
for ($i=0; $i< count ($langs); $i++) {
echo $langs[$i]['attr']['id']." – ".$langs[$i]['value'];
}
[/php]
Una vez que esta convertido el XML en array es sencillo recorrer la información contenida en el.
Actualizado
Código fuente de xml2array.php
3 comentarios
Francisco · 7 enero 2010 a las 7:28
para obtener la función xml2array solo copio el contenido en un php? hasta ahora envia unos errores de encabezado
sati · 7 enero 2010 a las 19:07
Si asi es, aún así he puesto xml2array en un txt para poder verlo mejor.
¿Que error de cabecera te da?
Saber el tiempo con PHP y Google | Blog de sati · 11 diciembre 2009 a las 18:21
[…] Utilizando PHP para mostrar los datos Ahora que ya sabes como obtener los datos los cargamos utilizando la función file_get_contents y despues los convertimos en un array utilizando xml2array. […]