xml2array: PHP XML Parser

11 Diciembre, 2009 por sati Dejar una respuesta »

xml2array
xml2array es un función hecha en PHP que nos permitirá convertir datos en formato XML a un array.


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:
  1. <?xml version="1.0" encoding="iso-8859-1"?>
  2.       <lang type="moviles">
  3.           <name id="1">nokia</name>
  4.           <name id="2">siemens</name>
  5.           <name id="3">samsung</name>
  6.           <name id="4">lg</name>
  7.       </lang>

Archivo sample.php

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

El resultado de este código es:

PHP:
  1.       (
  2.           [lang] => Array
  3.               (
  4.                   [attr] => Array
  5.                       (
  6.                           [type] => moviles
  7.                       )
  8.                   [name] => Array
  9.                       (
  10.                           [0] => Array
  11.                               (
  12.                                   [value] => nokia
  13.                                   [attr] => Array ( [id] => 1 )
  14.                               )
  15.                           [1] => Array
  16.                               (
  17.                                   [value] => siemens
  18.                                   [attr] => Array ( [id] => 2 )
  19.                               )
  20.                           [2] => Array
  21.                               (
  22.                                   [value] => samsung
  23.                                   [attr] => Array ( [id] => 3 )
  24.                               )
  25.                           [3] => Array
  26.                               (
  27.                                   [value] => lg
  28.                                   [attr] => Array ( [id] => 4 )
  29.                               )
  30.                       )
  31.               )
  32.       )

Entonces si deseamos conocer cuales son los valores de los móviles con sus respectivos identificadores, haríamos lo siguiente:

PHP:
  1. require("xml2array.php");
  2. $contents = file_get_contents('demo.xml');
  3. $result = xml2array($contents);
  4. $langs = $result['lang']['name'];
  5. for ($i=0; $i<count ($langs); $i++) {
  6.     echo $langs[$i]['attr']['id']." - ".$langs[$i]['value'];
  7. }

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

  1. Francisco dice:

    para obtener la función xml2array solo copio el contenido en un php? hasta ahora envia unos errores de encabezado

Deja un comentario