Re: [PHP-ES] Archivos XML de gran tamaño

[email protected] (Satyam)
Newsgroups php.general.es
Message-ID <[email protected]>
La alternativa de SAX es la unica razonable para un archivo de tamaño 
ilimitado.  en lugar de cargarlo todo en memoria de una vez y luego irlo 
procesando, SAX te deja irlo leyendo secuencialmente, elemento por 
elemento.  Si eso basta para procesarlo, perfecto, si algunas partes han 
de servir de referencia para procesarlas luego, se van guardando en 
tablas auxiliares en base de datos hasta que se las necesite.  El asunto 
es que no puedes cargar todo un XML de un tamaño desconocido en memoria, 
antes o despues no va a alcanzar y tendrias una aplicacion muy fragil.   
Ademas de lenta, pues el manejo de memoria virtual a que obligarías a 
cualquier maquina que debiera procesar semejante enormidad, terminaria 
matando a cualquier maquina.

El 30/03/2010 15:49, Jacobo Pedrosa escribió:
> Al final he conseguido leer el archivo y parsearlo, pero me da problemas de
> memory limit ya que supera los 90Mb (por ahora unos 200Mb, pero es
> variable).
>
> Se me ha ocurrido descargar el archivo y dividirlo con un comando Shell, no
> se, algo del estilo de un cat por número de lineas o alguna cosa del estilo.
> Esta solución no me parece del todo optima, pero no se me ocurre nada mejor.
>
> A alguien si?
>
>
> Saludos!!!
>
> PD: Lo de modificar el sistema de almacenamiento original no me sirve, dado
> que el XML me lo proporciona el cliente y no puedo pedirle que cambie su
> sistema....
>
>
>
>
>
>
> El 30 de marzo de 2010 11:24, Mauricio Cuenca<[email protected]>  escribió:
>
>    
>> Si crees que el tamaño de tu XML puede llegar a tener un gigabyte, creo que
>> deberías ir pensando en otra solución , como un directorio LDAP o un sistema
>> de almacenamiento liviano como LiteSQL.
>>
>> Otra posibilidad para seguir con el XML seria comprimirlo en origen y
>> descomprimirlo y parsearlo en el destino.
>>
>> --
>> Mauricio
>>
>>
>> On Mar 30, 2010, at 2:07, Jacobo Pedrosa<[email protected]>  wrote:
>>
>>   Hola a todos!
>>      
>>> Estoy intentando parsear un XML de gran tamaño (unos 20Mb actualmente pero
>>> puede llegar al Giga) y al intentarlo hacer directamente en el servidor,
>>> este se satura. Lo he probado con simpleXML, con funciones de leer
>>> archivos
>>> y el CURL, pero en todos me pasa lo mismo con el servidor.
>>>
>>> Lo único que se me ocurre es descargar el archivo con comandos shell,
>>> partirlo del mismo modo en trocitos masticables y luego que el sistema lo
>>> haga uno a uno, pero no se si hay alguna opción más eficaz. A alguien se
>>> le
>>> ocurre?
>>>
>>> Gracias!
>>>
>>>        
>>      
>    
>
>
>
> No virus found in this incoming message.
> Checked by AVG - www.avg.com
> Version: 9.0.791 / Virus Database: 271.1.1/2778 - Release Date: 03/29/10 20:32:00
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.