[Python-es] Recorrer fichero XML con Python

Luis Miguel Morillas morillas en gmail.com
Mar Dic 20 15:37:11 CET 2011


2011/12/20 Ricardo Cárdenes <ricardo.cardenes en gmail.com>:
> Dado que está usando PyQt4, puede ceñirse al paquete y usar el módulo
> de XML que le ofrece, en lugar de añadir dependencias nuevas:
>
>  http://developer.qt.nokia.com/doc/qt-4.8/xml-processing.html
>
> Los ejemplos de la documentación de Qt4 están traducidos a Python, así
> que puede usarlos como referencia.
>

Si sabes XML seguramente no hay problema. Si tienes que aprender xml
(sax, dom, ...) además de python, la cosa se complica. La ventaja de
parsers como amara es que ocultan al desarrollador no especialista en
xml muchas de sus complejidades. Además permite integrar en el proceso
de XML toda la potencia y expresividad de python. Algunas operaciones
no son triviales en XML.

Saludos,

-- luismiguel


> 2011/12/20 Nekmo <contacto en nekmo.com>:
>> Amara no lo conocía, yo el que uso es lxml, que además es compatible
>> con Python3 (el cual uso mucho).
>>
>> Un cordial saludo:
>> -- Nekmo.
>>
>> Sitio web: http://nekmo.com
>> Dirección de contacto: contacto en nekmo.com
>> XMPP/Jabber: contacto en nekmo.com
>> Identi.ca: http://identi.ca/nekmo
>> Diaspora: Nekmo
>> Google+: Nekmo Com
>>
>>
>>
>> El día 20 de diciembre de 2011 07:15, Luis Miguel Morillas
>> <morillas en gmail.com> escribió:
>>> El 19 de diciembre de 2011 21:56, Carlos Maykel López González
>>> <carlos.lopez en etecsa.cu> escribió:
>>>>
>>>> Hola a todos:
>>>> Les escribo pues me encargaron una aplicación con Python + QT4 y como soporte para los datos XML. la aplicación es para consultar los datos que están en el fichero XML. y leido y visto un sin numero de ejemplos pero no logro concretar la idea de como realizar esta consulta al fichero. aquí les envió un fragmento de mi xml.
>>>>
>>>
>>> Necesitas un parser de xml [1]  Yo uso Amara [2] por su eficiencia y
>>> porque genera una estructura de objetos python a partir de un doc xml.
>>> Según lo que tengas que hacer (extracción de datos, validación,
>>> proceso xslt, ...) tendrás que elegir uno u otro.
>>>
>>>
>>> [1] http://wiki.python.org/moin/PythonXml
>>> [2] http://wiki.xml3k.org/Amara
>>>
>>>
>>> -- lm
>>>
>>>
>>>
>>>> <ROW>
>>>>   <UNIDAD_NEGOCIO>33</UNIDAD_NEGOCIO>
>>>>   <FILIAL>12</FILIAL>
>>>>   <UNIDAD_BASICA>1212</UNIDAD_BASICA>
>>>>   <CICLO>R5</CICLO>
>>>>   <OFICINA>662</OFICINA>
>>>>   <SECTOR>PT</SECTOR>
>>>>   <ESTADO>A</ESTADO>
>>>>   <AGRUPACION>12100053785</AGRUPACION>
>>>>   <CUENTA/>
>>>>   <NO_FACTURA>1662CDEDSI</NO_FACTURA>
>>>>   <NOMBRE>Maria Perez Perez</NOMBRE>
>>>>   <SERVICIO>########</SERVICIO>
>>>>   <ACTIVO>A</ACTIVO>
>>>>   <COD_MONEDA>CUP</COD_MONEDA>
>>>>   <CUOTA>6.25</CUOTA>
>>>>   <LDN>15.45</LDN>
>>>>   <LDI>0.00</LDI>
>>>>   <LOCAL>0.00</LOCAL>
>>>>   <OTROS>0.00</OTROS>
>>>>   <IMPUESTO>0.00</IMPUESTO>
>>>>   <COMISION>0.00</COMISION>
>>>>   <FACTURADO>21.70</FACTURADO>
>>>>   <ATRASOS/>
>>>>   <TOTAL>21.70</TOTAL>
>>>>  </ROW>
>>>>  <ROW>
>>>>   <UNIDAD_NEGOCIO>33</UNIDAD_NEGOCIO>
>>>>   <FILIAL>12</FILIAL>
>>>>   <UNIDAD_BASICA>1212</UNIDAD_BASICA>
>>>>   <CICLO>R5</CICLO>
>>>>   <OFICINA>662</OFICINA>
>>>>   <SECTOR>PT</SECTOR>
>>>>   <ESTADO>A</ESTADO>
>>>>   <AGRUPACION>1200111004550</AGRUPACION>
>>>>   <CUENTA>492175</CUENTA>
>>>>   <NO_FACTURA>16DD2CD0FY1</NO_FACTURA>
>>>>   <NOMBRE>Roberto Lopez Regueiro</NOMBRE>
>>>>   <SERVICIO>########</SERVICIO>
>>>>   <ACTIVO>A</ACTIVO>
>>>>   <COD_MONEDA>CUP</COD_MONEDA>
>>>>   <CUOTA>7.25</CUOTA>
>>>>   <LDN>5.85</LDN>
>>>>   <LDI>0.00</LDI>
>>>>   <LOCAL>0.00</LOCAL>
>>>>   <OTROS>8.00</OTROS>
>>>>   <IMPUESTO>0.00</IMPUESTO>
>>>>   <COMISION>0.00</COMISION>
>>>>   <FACTURADO>21.10</FACTURADO>
>>>>   <ATRASOS/>
>>>>   <TOTAL>21.10</TOTAL>
>>>>  </ROW>
>>>> --
>>>>
>>>> ---
>>>> This message was processed by Kaspersky Mail Gateway 5.6.28/RELEASE running at host imx3.etecsa.cu
>>>> Visit our web-site: <http://www.kaspersky.com>, <http://www.viruslist.com>
>>>>
>>>> _______________________________________________
>>>> Python-es mailing list
>>>> Python-es en python.org
>>>> http://mail.python.org/mailman/listinfo/python-es
>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>
>>> _______________________________________________
>>> Python-es mailing list
>>> Python-es en python.org
>>> http://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/


Más información sobre la lista de distribución Python-es