Skip to main content
Engineering LibreTexts

13.2: Looping through Nodes

  • Page ID
  • Often the XML has multiple nodes and we need to write a loop to process all of the nodes. In the following program, we loop through all of the user nodes:

    Code 13.2.1 (Python)
    import xml.etree.ElementTree as ET
    input = '''
            <user x=\"2\">
            <user x=\"7\">
    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\"))
    # Code:

    The findall method retrieves a Python list of subtrees that represent the user structures in the XML tree. Then we can write a for loop that looks at each of the user nodes, and prints the name and id text elements as well as the x attribute from the user node.

    User count: 2
    Name Chuck
    Id 001
    Attribute 2
    Name Brent
    Id 009
    Attribute 7