Cómo leer archivos XML desde PHP

Ayer me encontraba conectado con Juan Ramón, un webmaster de España que contrató mi servicio de clases particulares de programación web PHP, y nos surgió la necesidad de leer e interpretar un archivo XML.

Supongamos que tenemos el siguiente archivo .xml el cual contiene información sobre el catálogo de productos de una tienda virtual para venta de productos a través de Internet.

1
2
3
4
5
6
7
8
9
10
11
12
13
<!--?xml version="1.0" encoding="iso-8859-1"?-->
    
        E-book de CodeIgniter
&lt;%%KEEPWHITESPACE%%&gt;      10
    
    
        Curso de PHP y Mysql
&lt;%%KEEPWHITESPACE%%&gt;      9,95
    
    
        Clase sobre inner join, group by y búsquedas en Mysql
&lt;%%KEEPWHITESPACE%%&gt;      10
   

 

Lo primero que debemos hacer es dar un vistazo rápido al archivo. Sin embargo, cuando abrimos el archivo xml en un editor de texto, su contenido suele ser bastante ilegible…

Por lo tanto, nos conviene abrirlo desde un navegador web. El navegador le pone colores y además hace las tabulaciones correspondientes, por lo tanto su lectura es más amigable. Un ejemplo de ésto se puede ver en el siguiente link:
http://www.blogdephp.com/resultados-codigos-fuentes-php/productos.xml

Cómo podemos observar, el archivo XML tiene una estructura de árbol. En este caso, la raíz se llama “productos” y sus hijos (o ramas) se llaman “producto”. Pero éste hijo, tiene a su vez hijos propios llamados “nombre”, “precio”, etc.

 

Si vienes muy perdido, te conviene relacionarlo con una tabla Mysql donde la raíz del árbol xml vendría a ser el nombre de la tabla, sus hijos vendrían a ser las filas y los hijos de los hijos vendrían a ser las columnas. En este ejemplo, sería una tabla llamada “productos”, cada “producto” sería una fila cuyas columnas (campos) serían nombre y precio.

Una vez que comprendemos la estructura del archivo xml podemos comenzar a leerlo mediante el siguiente código fuente php:

1
2
3
4
5
6
7
&lt;%%KEEPWHITESPACE%%&gt;      <!--?php $xml = simplexml_load_file("productos.xml"); foreach($xml-&gt;children() as $child)&lt;br ?-->         {
&lt;%%KEEPWHITESPACE%%&gt;        echo $child-&gt;nombre."
US$ <b>".$child-&gt;precio. "</b>
";
&lt;%%KEEPWHITESPACE%%&gt;        }
&lt;%%KEEPWHITESPACE%%&gt;      ?&gt;  

Ver salida en pantalla de éste código fuente php para leer archivos xml.

Consideraciones importantes de éste código:

  • (línea 2) especificamos la ruta a nuestro archivo XML. Lo hacemos mediante la sentencia simplexml_load_file, un recurso ya nativo de PHP, que no requiere instalación de librerías adicionales 🙂
  • (línea 4) la raíz del árbol nos queda almacenada en el objeto “$xml” y mediante el método “children()” tenemos acceso a sus hijos. Para recorrer cada hijo utilizamos el bucle foreach de php.
  • (línea 6) Imprimimos en pantalla las propiedades (atributos) del objeto. Es decir, los campos de datos pertenecientes a cada producto, en este caso son “nombre” y “precio”.

En los próximos días agregamos algo de complejidad al archivo XML y aprendemos cómo interpretarlo.

Leer xml con php

Saber leer XML desde php es muy importante porque XML es un standard. Es decir, nos permite importar y exportar datos con aplicaciones escritas en otros lenguajes de programación. Por ejemplo, supongamos que una tienda virtual para venta on-line se encuentra desarrollada en ASP.NET con base de datos Sql Server se podría exportar la base de datos a XML, la interpretamos con el código que venimos analizando y luego podemos volcarla en una base de datos Mysql.


													

You may also like...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *