Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
ElementTree
#2
import xml.etree.ElementTree as ET
import csv


def xml_parser(file):
    xml = ET.parse(file)
    genres = xml.findall('genre')

    for genre in genres:
        #print(genre.attrib)
        for decade in genre:
            #print(decade.attrib)
            for movie in decade:
                #print(movie.attrib)
                fmt = movie.find('format')
                year = movie.find('year')
                rate = movie.find('rating')
                #print(fmt.text, year.text, rate.text)
                #print(fmt.attrib, year.attrib, rate.attrib)
                yield genre.get('category'), decade.get('years'), movie.get('title'), fmt.text, year.text, rate.text
            return xml
It's a generator. You have to consume it with your writer. For example you can use the method writerows() on the csv_writer instance. I put some print statements in the nested for loops. If you put the code without the function on module level, you can try in the repel. Methods of ElementTree you need to know: attrib, name, text, get(), findall()
Almost dead, but too lazy to die: https://sourceserver.info
All humans together. We don't need politicians!
Reply


Messages In This Thread
ElementTree - by kkrish - Apr-25-2019, 04:18 AM
RE: ElementTree - by DeaD_EyE - Apr-25-2019, 06:23 AM
RE: ElementTree - by kkrish - Apr-27-2019, 01:36 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  XML Parsing - Find a specific text (ElementTree) TeraX 3 4,081 Oct-09-2018, 09:06 AM
Last Post: TeraX
  using eclispe and e = xml.etree.ElementTree.parse nickhere 9 4,723 Jan-11-2018, 08:37 PM
Last Post: nickhere

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020