I'm working on a directory with 27 folders and various XML files inside each folder.
was able to:
- parse one XML file and write to a CSV file
- traverse one folder and read and parse all XML files in it
challenges:
- having a problem trying to go through and parse all the XML files from the root folder to its subfolders
Send help and thank you. Code snippets below
# working in one folder only import csv import xml.etree.ElementTree as ET import os ## directory path = "/Users.../y" filenames = [] ## Count the number of xml files of each folder files = os.listdir(path) print("\n") xml_data_to_csv = open('/Users.../xml_extract.csv', 'w') list_head = [] csvwriter = csv.writer(xml_data_to_csv) # Read XML files in a folder for filename in os.listdir(path): if not filename.endswith('.xml'): continue fullname = os.path.join(path,filename) print("\n", fullname) filenames.append(fullname) # parse elements in each XML file for filename in filenames: tree = ET.parse(filename) root = tree.getroot() extract_xml=[] ## extract child elements per xml file print("\n") for x in root.iter('Info'): for element in x: print(element.tag,element.text) extract_xml.append(element.text) ## Write list nodes to csv csvwriter.writerow(extract_xml) ## Close CSV file xml_data_to_csv.close() 