How to extract xml attribute using Python ElementTree
122,436
Solution 1
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'
Solution 2
Getting child tag's attribute value in a XML using ElementTree
Parse the XML file and get the root
tag and then using [0]
will give us first child tag. Similarly [1], [2]
gives us subsequent child tags. After getting child tag use .attrib[attribute_name]
to get value of that attribute.
>>> import xml.etree.ElementTree as ET
>>> xmlstr = '<foo><bar key="value">text</bar></foo>'
>>> root = ET.fromstring(xmlstr)
>>> root.tag
'foo'
>>> root[0].tag
'bar'
>>> root[0].attrib['key']
'value'
If the xml content is in file. You should do below task to get the root
.
>>> tree = ET.parse('file.xml')
>>> root = tree.getroot()
Author by
Will Curran
Updated on December 14, 2021Comments
-
Will Curran over 2 years
For:
<foo> <bar key="value">text</bar> </foo>
How do I get "value"?
xml.findtext("./bar[@key]")
Throws an error.