def getValListFromXml(xml_name, xml_parameter, paraChecker=None): other_xml_tree = xmlTreeClass.XmlTree(xml_name, getXmlContent(xml_name)) root = other_xml_tree.root para_vals = [] if not paraChecker: for child in root: if "type" == child.tag: continue if child.get( xml_parameter ): # 有的元素没有某些参数,比如stage.xml中的hiddenStages,此时取到是None,不计入列表 para_vals.append(child.get(xml_parameter)) else: for child in root: if "type" == child.tag: continue attrCheckerName = paraChecker.split("=")[0] attrCheckerValue = paraChecker.split("=")[1] v = child.get(attrCheckerName) if child.get(xml_parameter) and attrCheckerValue == v: para_vals.append(child.get(xml_parameter)) # 去重,但不打乱顺序 # para_vals = list(set(para_vals)) para_vals2 = [] for p in para_vals: if p not in para_vals2: para_vals2.append(p) return para_vals2
def GetTsumLevelupInfo(levelupInfo_dic): chestlevel_tree = xmlTreeClass.XmlTree( "tsum_levelup.xml", functions.getXmlContent("tsum_levelup.xml")) for child in chestlevel_tree.root: if "type" == child.tag: continue cost_val = child.get("cost") basescore_val = child.get("basescore") level_val = child.get("level") nextExp_val = child.get("nextExp") skillLv_val = child.get('skillLv') star_val = child.get('star') if not star_val or not skillLv_val or not level_val or not basescore_val: continue if star_val not in levelupInfo_dic.keys(): levelupInfo_dic[star_val] = { level_val: [basescore_val, cost_val, nextExp_val, skillLv_val] } else: if level_val not in levelupInfo_dic[star_val].keys(): if nextExp_val and cost_val: levelupInfo_dic[star_val][level_val] = [ basescore_val, cost_val, nextExp_val, skillLv_val ] else: levelupInfo_dic[star_val][level_val] = [ basescore_val, None, None, skillLv_val ] return levelupInfo_dic
def getGlobalData(key): global_xml_tree = xmlTreeClass.XmlTree('global.xml', getXmlContent('global.xml')) for child in global_xml_tree.root: if key == child.get('key'): return child.text else: continue
def GetTsumInfo(info_dic): chestlevel_tree = xmlTreeClass.XmlTree("tsum.xml", functions.getXmlContent("tsum.xml")) for child in chestlevel_tree.root: if "type" == child.tag: continue tsumId_val = child.get("id") familyId_val = child.get("family") tsumstar_val = child.get("star") if not tsumId_val or not familyId_val or not tsumstar_val: continue if tsumId_val not in info_dic.keys(): info_dic[tsumId_val] = [familyId_val, tsumstar_val] else: if familyId_val != info_dic[tsumId_val][ 0] or tsumstar_val != info_dic[tsumId_val][1]: info_dic[tsumId_val] = [familyId_val, tsumstar_val] return info_dic
def GetTsumSkillup(skillup_dic): chestlevel_tree = xmlTreeClass.XmlTree( "tsum_levelup.xml", functions.getXmlContent("tsum_levelup.xml")) for child in chestlevel_tree.root: if "type" == child.tag: continue skillLv_val = child.get("skillLv") level_val = child.get("level") star_val = child.get('star') if not star_val or not skillLv_val or not level_val: continue if star_val not in skillup_dic.keys(): skillup_dic[star_val] = {skillLv_val: [level_val]} else: if skillLv_val not in skillup_dic[star_val].keys(): skillup_dic[star_val][skillLv_val] = [level_val] else: skillup_dic[star_val][skillLv_val].append(level_val) return skillup_dic
def chestlevel(TsumDrop_dic, FixedRewards_dic): chestlevel_tree = xmlTreeClass.XmlTree( "chest_level.xml", functions.getXmlContent("chest_level.xml")) for child in chestlevel_tree.root: if "type" == child.tag: continue chestId_val = child.get("chestId") userLevel_val = child.get("level") tsumDrop_val = child.get("tsumDrops") fixedRewards_val = child.get("fixedRewards") if not chestId_val or not userLevel_val or not tsumDrop_val: continue if chestId_val not in TsumDrop_dic.keys(): TsumDrop_dic[chestId_val] = {userLevel_val: tsumDrop_val} FixedRewards_dic[chestId_val] = {userLevel_val: fixedRewards_val} else: if userLevel_val not in TsumDrop_dic[chestId_val].keys(): TsumDrop_dic[chestId_val][userLevel_val] = tsumDrop_val FixedRewards_dic[chestId_val][userLevel_val] = fixedRewards_val return TsumDrop_dic, FixedRewards_dic
def getValDicFromXml(xml_name, xml_parameter1, xml_parameter2, xml_parameter3=None, dicValueFormat='str'): other_xml_tree = xmlTreeClass.XmlTree(xml_name, getXmlContent(xml_name)) root = other_xml_tree.root dicVals = {} if not xml_parameter3: # 获取两个参数的字典,value的参数类型为str if 'str' == dicValueFormat: for child in root: if "type" == child.tag: continue val1 = child.get(xml_parameter1).encode('utf-8') val2 = child.get(xml_parameter2) if not val1 or not val2: continue if val1 not in dicVals.keys(): dicVals[val1] = val2 # 获取两个参数的字典,value的参数类型为数组 if 'dic' == dicValueFormat: for child in root: if "type" == child.tag: continue val1 = child.get(xml_parameter1) val2 = child.get(xml_parameter2) if not val1 or not val2: continue if val1 not in dicVals.keys(): dicVals[val1] = [val2] else: dicVals[val1].append(val2) else: # 获取三个参数的字典,value的参数类型为str if 'str' == dicValueFormat: for child in root: if "type" == child.tag: continue val1 = child.get(xml_parameter1) val2 = child.get(xml_parameter2) val3 = child.get(xml_parameter3) if not val1 or not val2 or not val3: continue if val1 not in dicVals.keys(): dicVals[val1] = {val2: val3} else: if val2 not in dicVals[val1].keys(): dicVals[val1][val2] = val3 # 获取三个参数的字典,value的参数类型为数组 if 'dic' == dicValueFormat: for child in root: if "type" == child.tag: continue val1 = child.get(xml_parameter1) val2 = child.get(xml_parameter2) val3 = child.get(xml_parameter3) if not val1 or not val2 or not val3: continue if val1 not in dicVals.keys(): dicVals[val1] = {val2: [val3]} else: if val2 not in dicVals[val1].keys(): dicVals[val1][val2] = [val3] else: dicVals[val1][val2].append(val3) return dicVals