import enchant from xml.dom.minidom import parse import xml.dom.minidom import js2py import re # ------------------- Define ------------------- pat = '[a-zA-Z]+' xmlTags = ['String', 'value', 'string'] # ------------------- Use lib ------------------- d = enchant.Dict("en_US") # ------------------- Load whitelist ------------------- add_dict = open("exception.txt","r").readlines() for line in add_dict: d.add(line) # ------------------- Load XML ------------------- #DOMTree = xml.dom.minidom.parse("StringTable.xml") DOMTree = xml.dom.minidom.parse("MSReportTemplates.resx") arrData = [] for tages in xmlTags: arrData += DOMTree.getElementsByTagName(tages) if len( arrData ) > 0: for v in arrData: try: if v.childNodes[0].data is not None: line = re.findall(pat, v.childNodes[0].data) else: line = v.attributes['DisplayName'].value for x in range(len(line)): if d.check(line[x]) is False: print(line[x]) except IndexError: print('------------------- Parse L10N XML file error.------------------- ') # ------------------- Load JS ------------------- with open('L10N.update.js') as dataFile: data = dataFile.read() obj = js2py.eval_js(data) dataFile.close() for key in obj: all = re.findall(pat, obj[key]) for x in range(len(all)): if d.check(all[x]) == False: print(all[x])