Actualización de elementos XML y valores de atributos usando Python etree

Estoy tratando de usar la biblioteca ElementTree Python 2.7 para analizar un archivo XML, luego reemplazar atributos de elementos específicos con datos de prueba, y luego guardar esto como un archivo XML único.

Mi idea para una solución fue (1) generar nuevos datos de un archivo CSV leyendo un archivo a una cadena, (2) cortar la cadena en ciertas marcas delimitadoras, (3) añadir a una lista y luego (4) usar ElementTree para actualizar / eliminar / reemplazar el atributo con un valor específico de la lista.

He buscado en la documentación de ElementTree y he visto las funciones clear() y remove() , pero no tengo idea de la syntax para usarlas adecuadamente.

A continuación se muestra un ejemplo del XML que se debe modificar: los atributos con XXXXX se deben reemplazar / actualizar:

      

El resultado previsto será, por ejemplo:

      

¿Cómo uso los comandos de etree para cambiar el XML base para actualizar con un elemento de la lista []?

Para este tipo de trabajo, siempre recomiendo BeautifulSoup porque tiene una API muy fácil de aprender:

 from BeautifulSoup import BeautifulStoneSoup as Soup xml = """      """ soup = Soup(xml) rpt_side = soup.trdcaptrpt.rptside rpt_side['txt1'] = 'Updated' rpt_side.pty['id'] = 'Updated' print soup 

Ejemplo de salida:

      

Edición: Con xml.etree.ElementTree puede usar el siguiente script:

 from xml.etree import ElementTree as etree xml = """      """ root = etree.fromstring(xml) rpt_side = root.find('RptSide') rpt_side.set('Txt1', 'Updated') pty = rpt_side.find('Pty') pty.set('ID', 'Updated') print etree.tostring(root) 

Ejemplo de salida: