When I am running my file which takes a file off the command line reads it and creates an objecitifed xml instance and then parses for each attribute into a dictionary and then yields it.
At this point I am tring to use it to obtain specific key value elements, however I keep being returned the whole file output rather than the selection key.really not sure where I am going wrong. The key part of my file that is using the generator is for item in parseXML(): number = item["number"] print(number) Rest of file for reference ================================================================================ from lxml import objectify import argparse import os parser = argparse.ArgumentParser() parser.add_argument("path", type=str, nargs="+") parser.add_argument('-e', '--extension', default='', help='File extension to filter by.') args = parser.parse_args() name_pattern = "*" + args.extension my_dir = args.path[0] for dir_path, subdir_list, file_list in os.walk(my_dir): for name_pattern in file_list: full_path = os.path.join(dir_path, name_pattern) def getsMeet(file_list): """generator which yields sorted file.""" for filename in sorted(file_list): filename = my_dir + filename yield filename def parseXML(): """ given a file XML will parse for listed attributes. using objectified lxml """ for file in getsMeet(file_list): with open(file, "rb") as f: xml = f.read() root = objectify.parse(xml) atts = ("number", "id", "horse", "saddlecloth", "barrier", "weight", "rating", "description", "colours", "owners", "dob", "age", "sex", "career", "thistrack", "thisdistance", "goodtrack", "heavytrack", "finished", "weightvariation", "variedweight", "decimalmargin", "penalty", "pricestarting") for sample in root.xpath('//race/nomination'): noms = (dict(zip(atts, map(sample.attrib.get, atts)))) yield noms for item in parseXML(): number = item["number"] print(number) ================================================================================ Thanks Sayth -- https://mail.python.org/mailman/listinfo/python-list