[pyar] Parseando HTML dentro de XML

Daniel Moisset dmoisset en machinalis.com
Lun Oct 29 10:41:25 ART 2012


2012/10/27 Sebastian Bassi <sebastian.bassi en globant.com>

> Tengo un XML donde tiene en una parte:
>
> "<titulo>Aca va el titulo que tiene <italic>letra italica</italic> y
> sigue el texto</titulo>"
>
> Cuando lo parseo con lxml, el atributo texto de ese elemento es:
>
> "Aca va el titulo que tiene "
>
> mi parser es de este estilo:
>
> context = etree.iterparse(fin, events=("end",))
>     for a, elem in context:
>         if elem.tag == tag:
>             print elem.text
>
> El archivo xml no lo hice yo, sino que lo bajo de un 3ro y no puede
> decirle que no pongan tags de HTML en ese lugar. ¿Que puedo hacer para
> recuperar el texto completo? Yo quisiera tener:
>
> "Aca va el titulo que tiene <italic>letra italica</italic> y sigue el
> texto"
>
>

Recién veo esto... podés usar pyquery

>>> import pyquery
>>> xml = "<titulo>Aca va el titulo que tiene <italic>letra
italica</italic> y sigue el texto</titulo>"
>>> q = pyquery.PyQuery(xml, parser='xml')
>>> q("titulo").html()
u'Aca va el titulo que tiene <italic>letra italica</italic> y sigue el
texto'

Aunque el método se llame "html", en realidad maneja bien XML (si le pasas
parser='xml' al constructor)

Saludos,
   D.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20121029/63c87eec/attachment.html>


More information about the pyar mailing list