Cómo extraer el atributo xml usando Python ElementTree

Por:

 text  

¿Cómo obtengo el “valor”?

 xml.findtext("./bar[@key]") 

Lanza un error.

Esto buscará la primera instancia de un elemento llamado bar y devolverá el valor de la key atributo.

 In [52]: import xml.etree.ElementTree as ET In [53]: xml=ET.fromstring(contents) In [54]: xml.find('./bar').attrib['key'] Out[54]: 'value' 

Obtención del valor de atributo de la etiqueta secundaria en un XML utilizando ElementTree

Analice el archivo XML y obtenga la etiqueta root y luego use [0] para obtener la primera etiqueta secundaria. Del mismo modo [1], [2] nos da tags secundarias subsiguientes. Después de obtener la etiqueta secundaria, use .attrib[attribute_name] para obtener el valor de ese atributo.

 >>> import xml.etree.ElementTree as ET >>> xmlstr = 'text' >>> root = ET.fromstring(xmlstr) >>> root.tag 'foo' >>> root[0].tag 'bar' >>> root[0].attrib['key'] 'value' 

Si el contenido xml está en el archivo. Debes hacer la siguiente tarea para obtener la root .

 >>> tree = ET.parse('file.xml') >>> root = tree.getroot() 

Tu expresion

./bar[@key]

Significa: bar niños que tienen atributo key

Si desea seleccionar el atributo, use esta expresión relativa:

 bar/@key 

Significa: el atributo key de los niños de la bar

Por supuesto, debe considerar usar un motor XPath totalmente compatible como lxml .