| 175 | return data |
| 176 | |
| 177 | def exportXml(self): |
| 178 | root = ElementTree.Element("plan") |
| 179 | root.attrib["name"] = "Pyfa exported plan for " + self.skillReqsDict['charname'] |
| 180 | root.attrib["revision"] = config.evemonMinVersion |
| 181 | |
| 182 | sorts = ElementTree.SubElement(root, "sorting") |
| 183 | sorts.attrib["criteria"] = "None" |
| 184 | sorts.attrib["order"] = "None" |
| 185 | sorts.attrib["groupByPriority"] = "false" |
| 186 | |
| 187 | skillsSeen = set() |
| 188 | |
| 189 | for s in self.skillReqsDict['skills']: |
| 190 | skillKey = str(s["skillID"]) + "::" + s["skill"] + "::" + str(int(s["level"])) |
| 191 | if skillKey in skillsSeen: |
| 192 | pass # Duplicate skills confuse EVEMon |
| 193 | else: |
| 194 | skillsSeen.add(skillKey) |
| 195 | entry = ElementTree.SubElement(root, "entry") |
| 196 | entry.attrib["skillID"] = str(s["skillID"]) |
| 197 | entry.attrib["skill"] = s["skill"] |
| 198 | entry.attrib["level"] = str(int(s["level"])) |
| 199 | entry.attrib["priority"] = "3" |
| 200 | entry.attrib["type"] = "Prerequisite" |
| 201 | notes = ElementTree.SubElement(entry, "notes") |
| 202 | notes.text = entry.attrib["skill"] |
| 203 | |
| 204 | # tree = ElementTree.ElementTree(root) |
| 205 | data = ElementTree.tostring(root, 'utf-8') |
| 206 | prettydata = minidom.parseString(data).toprettyxml(indent=" ") |
| 207 | |
| 208 | return prettydata |
| 209 | |
| 210 | @staticmethod |
| 211 | def backupSkills(path, saveFmt, activeFit, callback): |