FAQ
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<macuenca@gmail.com> 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 Pedrosawrote:

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

Search Discussions

Discussion Posts

Previous

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 7 of 7 | next ›
Discussion Overview
groupphp-general-es @
categoriesphp
postedMar 30, '10 at 12:07a
activeMar 30, '10 at 3:02p
posts7
users6
websitephp.net

People

Translate

site design / logo © 2022 Grokbase