def _parse(self, xml_file):
if xml_file.endswith('.gz'):
with gzip.open(xml_file, 'rb') as f:
data = ET.parse(f).getroot()
else:
data = ET.parse(xml_file).getroot()
'''
Data is an XML ElementTree Object
'''
self.id_map = {}
self.catid = ''
self.catname = ''
self.findpath = 'Name[@langid="' + langid + '"]'
for elem in data.iter('Category'):
self.catid = elem.attrib['ID']
for name in elem.iterfind(self.findpath):
self.catname = name.attrib['Value']
# only need one match
break
if not self.catname:
self.catname = "Unknown"
self.id_map[self.catid] = self.catname
self.log.info("Parsed {} Categories from IceCat CategoriesList".format(str(len(self.id_map.keys()))))
评论列表
文章目录