Using the ElementTree library in Module xml
Example 1: Selecting elements with findall
import xml.etree.ElementTree as ET
input = '''<stuff>
<users>
<user x="x1">
<id>001</id>
<name>John</name>
</user>
<user x="x2">
<id>002</id>
<name>Sam</name>
</user>
</users>
</stuff>'''
stuff = ET.fromstring(input)
lst = stuff.findall('users/user')
print('User count:', len(lst))
for item in lst:
print('Name:', item.find('name').text)
print('ID:', item.find('id').text)
print('Attribute:', item.get('x'))
Example 2: Selecting elements with an XPath Selector
from urllib.request import urlopen
import ssl
import xml.etree.ElementTree as ET
# Ignore SSL certificate errors
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
url = 'http://some-site.net/some-doc.xml'
print('Retrieving ', url)
data = urlopen(url, context=ctx).read()
print('Retrieved', len(data), 'characters')
tree = ET.fromstring(data)
lst = tree.findall('.//count')
count = 0
sum = 0
for item in lst:
sum += int(item.text)
count += 1
print('Count:', count)
print('Sum:', sum)