How to extract xml attribute using Python ElementTree

Will Curran picture Will Curran · Jan 1, 2011 · Viewed 89.4k times · Source

For:

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

How do I get "value"?

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

Throws an error.

Answer

unutbu picture unutbu · Jan 1, 2011

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'