How to parse XML and count instances of a particular node attribute with Python?

Sometimes, we want to parse XML and count instances of a particular node attribute with Python.

In this article, we’ll look at how to parse XML and count instances of a particular node attribute with Python.

How to parse XML and count instances of a particular node attribute with Python?

To parse XML and count instances of a particular node attribute with Python, we can use the xml.etree.ElementTree constructor.

For instance, we write:

file.xml

<foo>
   <bar>
      <type foobar="1"/>
      <type foobar="2"/>
   </bar>
</foo>

to define an XML file with some content.

Then we write:

main.py:

import xml.etree.ElementTree as ET

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

for type_tag in root.findall('bar/type'):
    value = type_tag.get('foobar')
    print(value)

to import the xml.etree.ElementTree constructor as ET.

Then we use the ET constructor with the XML file path.

Next, we call getRoot to get the root node of the XML file.

Then we call findall with the node tag path we’re looking for.

We then loop through the returned nodes with a for loop.

And then we call get with the attribute name string of the attribute we want to get.

This returns the attribute value and we assign that to value and print it.

Therefore, we see:

1
2

printed.

Conclusion

To parse XML and count instances of a particular node attribute with Python, we can use the xml.etree.ElementTree constructor.