xml2array: PHP XML Parser

xml2array es un función escrita en PHP que nos permitirá convertir rápidamente datos en formato XML a un array con lo cual será sencillo acceder a cada una de sus propiedades y atributos. Esta función es especialmente útil en PHP4 pues no contiene métodos sencillos para la manipulación de XML como si lo tiene PHP5.

Obteniendo la función
Para descargar esta función, es necesario acceder a la web del autor de xml2array, copiar el código allí mostrado en un archivo llamado xml2array.php o al archivo donde estén nuestras funciones.

Utilizando xml2array
Luego para utilizar esta función le pasamos como parámetro un texto que contiene el XML y lo devolverá automáticamente en array, entonces si queremos acceder a un archivo que contiene el XML utilizaremos la función file_get_contents previamente.

  1. require("xml2array.php");
  2. $contents = file_get_contents('demo.xml');
  3. $result = xml2array($contents);
  4. print_r($result);

Nótese que hemos utilizado print_r, el cual imprime un array tabulado para facilitar la lectura. Veamos un ejemplo práctico de como se accede a los datos utilizando esta función.

  • <"lang type="interpreted"">
  • PHP
  • Python
  • JSP
  • Ruby
Luego de utilizar esta función los datos se encuentran formateados de la siguiente forma:

Array
(
[lang] => Array
(
[attr] => Array
(
[type] => interpreted
)
[name] => Array
(
[0] => Array
(
[value] => PHP
[attr] => Array ( [id] => 1 )
)
[1] => Array
(
[value] => Python
[attr] => Array ( [id] => 2 )
)
[2] => Array
(
[value] => JSP
[attr] => Array ( [id] => 3 )
)
[3] => Array
(
[value] => Ruby
[attr] => Array ( [id] => 4 )
)
)
)
)

Entonces si deseamos conocer cuales son los valores de los lenguajes con sus respectivos identificadores, tendríamos:

require("xml2array.php");
$contents = file_get_contents('data.xml');
$result = xml2array($contents);

$langs = $result['lang']['name'];
for ($i=0; $i < sizeof($langs); $i++) { echo $langs[$i]['attr']['id']." - ".$langs[$i]['value']; } sizeof($langs); Pueden ver el ejemplo funcionando en xml2array/index.php y el XML original el xml2array/data.xml. Como pueden ver una vez que esta convertido en XML es sencillo recorrer la información contenida en el array.

No hay comentarios:

Publicar un comentario