<div dir="ltr">Gracias, por los consejos en PHP, pero ya he probado todo y he realizado varias pruebas de velocidad, del xml preciso toda la info que tiene, el que tiene 2.5 millones de tags, se transforman en 10 mil registros en el MYSQL, de ahí la velocidad de procesado que necesito.</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">El 13 de junio de 2013 23:36, Ivan Baldo <span dir="ltr"><<a href="mailto:ibaldo@adinet.com.uy" target="_blank">ibaldo@adinet.com.uy</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
Hola.<br>
Capás que el problema con XMLReader es que generalmente debe
usarse iterando por cada elemento leído con código PHP y PHP es
lentísimo como lenguaje :-(.<br>
Si no precisás realmente todos los elementos del XML para
procesar sino que sólo algunos entonces en una de esas logras mejor
velocidad con DOMDocument y afines:
<a href="http://www.php.net/manual/es/book.dom.php" target="_blank">http://www.php.net/manual/es/book.dom.php</a> .<br>
Con esa clase lo levantas y luego por ejemplo podes pedir todos
los elementos que son determinado "tag" (nombre de elemento) o por
id; si precisas algo mas avanzado entonces podés utilizar DOMXPath.<br>
Alternativamente podés probar SimpleXML
<a href="http://www.php.net/manual/es/book.simplexml.php" target="_blank">http://www.php.net/manual/es/book.simplexml.php</a> que es un poco mas
sencillo de usar aunque supongo (me puedo equivocar) que un poco mas
lento, pero probablemente si no iteras en todos los elementos va a
ser bastante mas rápido que XMLReader.<br>
Saludos.<br>
<br>
<br>
El 13/06/13 11:21, Alejandro Stendelis escribió:
<blockquote type="cite"><div><div class="h5">
<div dir="ltr">Hola,<br>
<br>
Tengo un proyecto funcionando, esta realizado en PHP, el mismo
se trata de procesar cada hora algunos archivos XML (son unos 30
archivos que pesan de 5 megas a 350 megas). <br>
<br>
El servicio funciona de esta manera en resumen.<br>
<br>
Legan los XML en formato .zip.<br>
Un cron job se fija cuando se actualizan.<br>
Si hay archivos de descomprimen.<br>
Un php toma el XML y por medio de XMLReader() lo procesa y hace
unos 10 inserts en promedio por cada XML.<br>
Luego se utiliza los datos de la DB para hacer funcionar un
servicio.<br>
<br>
La situación hasta este momento es que lo hace muy bien, pero
necesito acelerar el proceso de los XML, XMLReader() tarda en el
XML mas grande unos 20 minutos, son cerca de 350 megas y unas
2.5 millones de lineas.<br>
<br>
Me imagino que haciendo un script shell o en C, que corra
directamente sobre el servidor linux, ahorro mucho tiempo y
puedo tener mas control de los procesos, ya que es mas nativo
por así decirlo.<br>
<br>
Buscando encontré estos códigos, los cuales me imagino que uno
de ellos es el mejor camino a seguir.<br>
<br>
Mi pregunta es, quien tiene experiencia en tratar desde scripts
datos complejos?, y cual es el mejor camino a seguir?<br>
Necesitaré un programador Freelance que en algún momento tendré
que contratar.<br>
<br>
<br>
<a href="http://vtd-xml.sourceforge.net/" target="_blank">http://vtd-xml.sourceforge.net/</a><br>
<a href="http://xml-shell.sourceforge.net/" target="_blank">http://xml-shell.sourceforge.net/</a><br>
<a href="http://www.xmlsh.org/Commands" target="_blank">http://www.xmlsh.org/Commands</a><br>
<a href="http://rpbouman.blogspot.com/2006/03/importing-xml-data-into-mysql-using.html" target="_blank">http://rpbouman.blogspot.com/2006/03/importing-xml-data-into-mysql-using.html</a><br>
<br>
Gracias.<br>
</div>
<br>
<fieldset></fieldset>
<br>
</div></div><div class="im"><pre>_______________________________________________
Uylug-programming mailing list
<a href="mailto:Uylug-programming@listas.uylug.org.uy" target="_blank">Uylug-programming@listas.uylug.org.uy</a>
<a href="http://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy" target="_blank">http://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy</a>
</pre>
</div></blockquote><span class="HOEnZb"><font color="#888888">
<br>
<pre cols="72">--
Ivan Baldo - <a href="mailto:ibaldo@adinet.com.uy" target="_blank">ibaldo@adinet.com.uy</a> - <a href="http://ibaldo.codigolibre.net/" target="_blank">http://ibaldo.codigolibre.net/</a>
>From Montevideo, Uruguay, at the south of South America.
Freelance programmer and GNU/Linux system administrator, hire me!
Alternatives: <a href="mailto:ibaldo@codigolibre.net" target="_blank">ibaldo@codigolibre.net</a> - <a href="http://go.to/ibaldo" target="_blank">http://go.to/ibaldo</a>
</pre>
</font></span></div>
</blockquote></div><br></div>