pythonxmlxpathelementtree

How to extract xml attribute using Python ElementTree


For:

<foo>
 <bar key="value">text</bar>
</foo>

How do I get "value"?

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

Throws an error.


Solution

  • This will find the first instance of an element named bar and return the value of the attribute key.

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