2

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?

Max Goodridge
  • 373
  • 2
  • 7
  • 21
  • [answer before](http://stackoverflow.com/questions/1786476/parsing-xml-in-python-using-elementtree-example?rq=1) – aristotll Jan 04 '16 at 11:30

1 Answers1

4

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
har07
  • 88,338
  • 12
  • 84
  • 137