void RemoveFromXML(LoadoutPreset loadout) { XmlNode nodeToRemove = GetXmlNode(loadout); if (nodeToRemove != null) { XmlNode prevNode = nodeToRemove.PreviousSibling; nodeToRemove.OwnerDocument.DocumentElement.RemoveChild(nodeToRemove); if (prevNode != null && (prevNode.NodeType == XmlNodeType.Whitespace || prevNode.NodeType == XmlNodeType.SignificantWhitespace)) { prevNode.OwnerDocument.DocumentElement.RemoveChild(prevNode); } } LoadoutPresetDoc.Save(LoadoutPresetPath); }
void AddPresetToXML(LoadoutPreset loadout) { if (LoadoutPresetDoc.DocumentElement == null) { LoadoutPresetDoc = new XmlDocument(); XmlDeclaration xmlDec = LoadoutPresetDoc.CreateXmlDeclaration("1.0", "UTF-8", null); XmlElement root = LoadoutPresetDoc.DocumentElement; LoadoutPresetDoc.InsertBefore(xmlDec, root); XmlElement presets = LoadoutPresetDoc.CreateElement("Presets"); LoadoutPresetDoc.AppendChild(presets); } XmlNode preset = LoadoutPresetDoc.CreateElement("Preset"); LoadoutPresetDoc.DocumentElement.AppendChild(preset); XmlAttribute nameAttr = LoadoutPresetDoc.CreateAttribute("name"); nameAttr.Value = loadout.presetName; preset.Attributes.Prepend(nameAttr); XmlNode activeAbilities = LoadoutPresetDoc.CreateElement("ActiveAbilities"); preset.AppendChild(activeAbilities); for (int i = 0; i < loadout.activeAbilityNames.Count; i++) { XmlNode ability = LoadoutPresetDoc.CreateElement("Ability"); ability.InnerText = loadout.activeAbilityNames[i]; activeAbilities.AppendChild(ability); } XmlNode loadoutAbilities = LoadoutPresetDoc.CreateElement("LoadoutAbilities"); preset.AppendChild(loadoutAbilities); for (int i = 0; i < loadout.loadoutAbilityNames.Count; i++) { XmlNode ability = LoadoutPresetDoc.CreateElement("Ability"); ability.InnerText = loadout.loadoutAbilityNames[i]; loadoutAbilities.AppendChild(ability); } LoadoutPresetDoc.Save(LoadoutPresetPath); }