[uylug-programming] Procesamiento de XML

Carlos M. Martinez carlosmarcelomartinez at gmail.com
Fri Jun 14 07:10:10 PDT 2013


Ese es el punto del XPath, no hace falta hilar tan fino en la estructura
del texto mismo como con sed/awk, donde matcheando patrones de texto se
te puede romper todo por un espacio de mas o de menos.

En Python: http://lxml.de/xpathxslt.html

s2

~Carlos

On 6/14/13 8:58 AM, Chicken Urine wrote:
> Dependiendo de como sea la estructura del xml puede ser trivial con
> sed/awk pasarlo a un csv. Hacer un load data de 10k registros en Mysql
> te puede llevar menos de 30 segundos con la configuración optima.
>
>
> .:-:ChiCkENURiNE:-:.
> + El SPAM <http://groups.google.com/group/spam-a-lot/> tiene su lugar.
>
>
> 2013/6/14 Alejandro Stendelis <stendelis at gmail.com
> <mailto:stendelis at gmail.com>>
>
>     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.
>
>
>     El 13 de junio de 2013 23:36, Ivan Baldo <ibaldo at adinet.com.uy
>     <mailto:ibaldo at adinet.com.uy>> escribió:
>
>             Hola.
>             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 :-(.
>             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:
>         http://www.php.net/manual/es/book.dom.php .
>             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.
>             Alternativamente podés probar SimpleXML
>         http://www.php.net/manual/es/book.simplexml.php 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.
>             Saludos.
>
>
>         El 13/06/13 11:21, Alejandro Stendelis escribió:
>>         Hola,
>>
>>         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).
>>
>>         El servicio funciona de esta manera en resumen.
>>
>>         Legan los XML en formato .zip.
>>         Un cron job se fija cuando se actualizan.
>>         Si hay archivos de descomprimen.
>>         Un php toma el XML y por medio de XMLReader() lo procesa y
>>         hace unos 10 inserts en promedio por cada XML.
>>         Luego se utiliza los datos de la DB para hacer funcionar un
>>         servicio.
>>
>>         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.
>>
>>         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.
>>
>>         Buscando encontré estos códigos, los cuales me imagino que
>>         uno de ellos es el mejor camino a seguir.
>>
>>         Mi pregunta es, quien tiene experiencia en tratar desde
>>         scripts datos complejos?, y cual es el mejor camino a seguir?
>>         Necesitaré un programador Freelance que en algún momento
>>         tendré que contratar.
>>
>>
>>         http://vtd-xml.sourceforge.net/
>>         http://xml-shell.sourceforge.net/
>>         http://www.xmlsh.org/Commands
>>         http://rpbouman.blogspot.com/2006/03/importing-xml-data-into-mysql-using.html
>>
>>         Gracias.
>>
>>
>>         _______________________________________________
>>         Uylug-programming mailing list
>>         Uylug-programming at listas.uylug.org.uy <mailto:Uylug-programming at listas.uylug.org.uy>
>>         http://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy
>
>         -- 
>         Ivan Baldo - ibaldo at adinet.com.uy <mailto:ibaldo at adinet.com.uy> - http://ibaldo.codigolibre.net/
>         From Montevideo, Uruguay, at the south of South America.
>         Freelance programmer and GNU/Linux system administrator, hire me!
>         Alternatives: ibaldo at codigolibre.net <mailto:ibaldo at codigolibre.net> - http://go.to/ibaldo
>
>
>
>     _______________________________________________
>     Uylug-programming mailing list
>     Uylug-programming at listas.uylug.org.uy
>     <mailto:Uylug-programming at listas.uylug.org.uy>
>     http://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy
>
>
>
>
> _______________________________________________
> Uylug-programming mailing list
> Uylug-programming at listas.uylug.org.uy
> http://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.uylug.org.uy/pipermail/uylug-programming-uylug.org.uy/attachments/20130614/0d1b09a2/attachment-0005.htm>


More information about the Uylug-programming mailing list