private static void LoadFromXml(MacroFolder MF, XmlElement FolderNode) { if (FolderNode.Attributes["name"] != null) { MF.Name = FolderNode.Attributes["name"].InnerText; } { // Load contained macros XmlNodeList Macros = FolderNode.SelectNodes("macro"); foreach (XmlNode MacroNode in Macros) { if (MacroNode is XmlElement) { MF.Macros.Add(Macro.LoadFromXml(MacroNode as XmlElement)); } } } { // Load contained folders XmlNodeList SubFolders = FolderNode.SelectNodes("folder"); foreach (XmlNode SubFolderNode in SubFolders) { if (SubFolderNode is XmlElement) { MacroFolder SubFolder = new MacroFolder(); MacroLibrary.LoadFromXml(SubFolder, SubFolderNode as XmlElement); MF.Folders.Add(SubFolder); } } } }