[Python-es] Obtener el texto plano de un pango markup

Luis Miguel Morillas morillas en gmail.com
Sab Sep 4 09:13:01 CEST 2010


El 4 de septiembre de 2010 04:00, Ramiro <rmrsndvl en yahoo.com.ar> escribió:
>
> Hola
>
> Estoy buscando una función, si es que la hay, que me devuelva el texto SIN atributos.
>
> Ej:
>
> En una lista voy coloreando valores de esta manera:
>  '<span foreground="#FF0000"><b>HOLA</b></span>' (con esto aparecería HOLA en rojo y en negrita en un treeview)
>
> Lo que yo busco es una función (¿XML?) que me saque los atributos y me devuelva solo la cadena 'HOLA'
>
> Me hice una función en python que me saca todo lo contenido entre los caracteres < y >, pero al hacer busquedas con la lisa muy llena se nota un poco lento, si existiese esta función escrita en C sería mejor.
>
>
> esta es mi func:
>
>     def get_text_markup(txt):
>
>         for i in range (1000):
>             pos1 = txt.find('<')
>             if pos1 == -1:
>                 return txt
>
>             pos2 = txt.find('>')
>             if pos2 == -1:
>                 return txt
>             elif pos2 < pos1:
>                 return txt
>             txt = txt [:pos1] + txt[pos2+1:]
>         raise ValueError
>
>
> Nada más, SALUDOS
>
>

Usando amara:

>>> from amara import bindery
>>> doc = bindery.parse('<span foreground="#FF0000"><b>HOLA</b></span>' )
>>> print doc.span
HOLA
>>> unicode(doc.span)
u'HOLA'
>>> unicode(doc)


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