[Python-es] Duda sobre xml.dom.minidom

Luis Miguel Morillas morillas en gmail.com
Lun Jul 5 15:13:40 CEST 2010


El día 4 de julio de 2010 08:37, alfonso saavedra <n4e03 en yahoo.es> escribió:
> Buenos dias:
> Tengo un problema al procesar un archivo XML.
> Mi XML es este:
> <?xml version='1.0'?>
> <resolutions>
>     <dispositive id='1'>
>         <res>640x480</res>
>         <res>1024x768</res>
>         <res>1440x900</res>
>     </dispositive>
>     <dispositive id='2'>
>         <res>128x128</res>
>         <res>176x220</res>
>     </dispositive>
> </resolutions>
>
> Lo que necesito es que me saque por pantalla solamente, por ejemplo, lo que
> esta dentro de <dispositive id='1'>
> E estado Googleando y encontré
> http://binsd.wordpress.com/2008/09/08/xml-en-python/ , el cual e intentado
> modificar para que haga lo que quiero
> Gracias de antemano
>
>
Qué quieres exactamente? Yo utilizo Amara [1]
Suponiendo que XML sea el doc que quieres parsear:
>>> from amara import bindery
>>> doc = bindery.parse(XML)

1. Solución con xpath:
>>> dispositivo = doc.xml_select(u'//dispositive[@id="1"]')[0]

>>> dispositivo.xml_write()
<dispositive id="1">
        <res>640x480</res>
        <res>1024x768</res>
        <res>1440x900</res>
    </dispositive>

>>> for r in dispositivo.res:
	print r

640x480
1024x768
1440x900

2. Forma más pythonica:
>>> for d in doc.resolutions.dispositive:
	if d.id == "1":
		d.xml_write()
		
<dispositive id="1">
        <res>640x480</res>
        <res>1024x768</res>
        <res>1440x900</res>
    </dispositive>



[1] http://wiki.xml3k.org/Amara2


-- lm


> _______________________________________________
> 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