Analizando CDATA en xml con python

Necesito analizar un archivo XML con una serie de bloques de CDATA que debo conservar para su posterior trazado:

Tendré que hacer esto repetidamente y rápidamente, y estoy buscando la mejor manera de hacerlo. He leído que ElementTree es el más rápido de los métodos, pero estoy abierto a otras sugerencias.

Aquí hay dos ejemplos de cómo hacerlo:

 from lxml import etree import xml.etree.ElementTree as ElementTree CONTENT = """     """ def parse_with_lxml(): root = etree.fromstring(CONTENT) for log in root.xpath("//log"): print log.text def parse_with_stdlib(): root = ElementTree.fromstring(CONTENT) for log in root.iter('log'): print log.text if __name__ == '__main__': parse_with_lxml() parse_with_stdlib() 

Salida:

 timestamp value timestamp value, timestamp value, timestamp timestamp value timestamp value, timestamp value, timestamp 

El atributo de texto lo maneja en ambos casos.