Oct 312014
 

El formato XML es utilizado frecuentemente para intercambiar datos entre distintas aplicaciones.

La manera más sencilla de procesar estos datos es utilizar algún procedimiento que lee el documento entero y convierte los elementos que contiene a una estructura de datos nativa del lenguaje de programación utilizado. En el caso de PHP, el resultado sería un array asociativo de valores, cada uno de los cuales sería a su vez una array asociativo o bien un valor primitivo, de tipo numérico o de tipo texto.

Pero en ocasiones el volumen de datos a procesar es muy elevado, y puede ser necesario trabajar con documentos XML contenidos en ficheros de varios Gigabytes. En estos casos, los recursos de memoria disponibles pueden no ser suficientes para contener el documento entero en memoria, y es necesario leer el fichero elemento a elemento, y procesar cada uno de los elementos conforme se van leyendo. En este artículo se presenta la forma de realizar este tipo de proceso en lenguaje PHP.

Seguir leyendo »

 Publicado por en 5:41 pm
Oct 302012
 

( Read this post in english )

En nuestro anterior artículo hemos visto cómo podemos procesar un fichero en formato XML con el módulo CPAN XML::Simple.

Sin embargo, este módulo lee el fichero entero en memoria, por lo que no resulta adecuado cuando el fichero a procesar es muy grande y los recursos de memoria RAM de que disponemos son limitados.

En su lugar, podemos utilizar el módulo XML::Parse::PerlSAX (SAX: Simple API for XML). Conforme se va leyendo el fichero, este módulo genera eventos del tipo “comienza un elemento”, “finaliza un elemento”, etc. Para procesar estos eventos programamos un package manejador de eventos.

Seguir leyendo »

 Publicado por en 8:18 pm
Oct 302012
 

( Read this post in english )

Existen numerosos módulos disponibles en CPAN que implementan distintas aproximaciones para el proceso de ficheros en formato XML.

El módulo XML::Simple que comentamos en este artículo puede ser el más adecuado para los casos más sencillos, en los que necesitamos leer o generar un fichero de pequeño tamaño que no hace uso de características avanzadas del formato XML.

Seguir leyendo »

 Publicado por en 7:10 pm