You are on page 1of 2

xml2array: PHP XML Parser

xml2array es un funcin escrita en PHP que nos permitir convertir rpidamente datos en formato XML a un array con lo cual ser sencillo acceder a cada una de sus propiedades y atributos. Esta funcin es especialmente til en PHP4 pues no contiene mtodos sencillos para la manipulacin de XML como si lo tiene PHP5. Obteniendo la funcin Para descargar esta funcin, es necesario acceder a la web del autor de xml2array, copiar el cdigo all mostrado en un archivo llamado xml2array.php o al archivo donde estn nuestras funciones. Utilizando xml2array Luego para utilizar esta funcin le pasamos como parmetro un texto que contiene el XML y lo devolver automticamente en array, entonces si queremos acceder a un archivo que contiene el XML utilizaremos la funcin file_get_contents previamente. 1. 2. 3. 4. require("xml2array.php"); $contents = file_get_contents('demo.xml'); $result = xml2array($contents); print_r($result);

Ntese que hemos utilizado print_r, el cual imprime un array tabulado para facilitar la lectura. Veamos un ejemplo prctico de como se accede a los datos utilizando esta funcin. 1. <?xml version="1.0" encoding="iso-8859-1"?> 2. <lang type="interpreted"> 3. <name id="1">PHP</name> 4. <name id="2">Python</name> 5. <name id="3">JSP</name> 6. <name id="4">Ruby</name> 7. </lang> Luego de utilizar esta funcin los datos se encuentran formateados de la siguiente forma: 1. Array 2. ( 3. [lang] => Array 4. ( 5. [attr] => Array 6. ( 7. [type] => interpreted 8. ) 9. [name] => Array 10. ( 11. [0] => Array 12. ( 13. [value] => PHP 14. [attr] => Array ( [id] => 1 ) 15. ) 16. [1] => Array 17. ( 18. [value] => Python

19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.)

[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, tendramos: 1. 2. 3. 4. 5. 6. 7. 8. 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']; }

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 informacin contenida en el array.

You might also like