public DataTree LoadFromFile(string filename) { XmlDocument file = new XmlDocument(); file.Load(filename); DataTree dt = new DataTree(); foreach (XmlNode group in file.DocumentElement) { dt.AddGroup(new GroupInfo(group.Attributes[0].Value)); XmlNode students = group.FirstChild; foreach (XmlNode student in students.ChildNodes) { try { dt[dt.Count - 1].addStudent(student["surname"].InnerText, student["name"].InnerText, student["middleName"].InnerText, int.Parse(student["rating"].InnerText), "default.bmp"); } catch { //out of range rating message } } } return(dt); }