Finding and Extracting Data using XML in Python

12,511

Assuming that the XML can have multiple <level> elements that you want to loop through and read the details, this is one possible way :

from xml.etree import ElementTree as ET

source = '''<root>
<level>
  <name>Matthias</name>
  <age>23</age>
  <gender>Male</gender>
</level>
<level>
  <name>Foo</name>
  <age>24</age>
  <gender>Male</gender>
</level>
<level>
  <name>Bar</name>
  <age>25</age>
  <gender>Male</gender>
</level>
</root>'''

root = ET.fromstring(source)
levels = root.findall('.//level')
for level in levels:
    name = level.find('name').text
    age = level.find('age').text
    print name, age

output :

Matthias 23
Foo 24
Bar 25
Share:
12,511
Max Goodridge
Author by

Max Goodridge

Updated on June 04, 2022

Comments

  • Max Goodridge
    Max Goodridge almost 2 years

    You could work from the top of the XML down to the comments node and then loop through the child nodes of the comments node.

    I am sure this is what I need to do but I'm not sure how to go about doing this.

    I have an XML data structure similar to:

    <level>
      <name>Matthias</name>
      <age>23</age>
      <gender>Male</gender>
    </level>
    ...
    

    I am trying to present the name, age and character gender to the user by extracting the data in to Python for data validation, processing and output.

    How do I extract only the players name from these XML data in Python?