//后台函数 /// <summary> /// 读取本地年级、班级数据 /// </summary> private void InitGrades() { XmlDocument xml = new XmlDocument(); try { xml.Load("Member.xml"); } catch (XmlException) { MessageBox.Show("无法打开文件 Member.xml,请检查文件是否存在!"); return; } catch (NotSupportedException) { MessageBox.Show("Member.xml 的文件格式无效!"); return; } XmlElement rootElem = xml.DocumentElement; XmlNodeList gradeNodes = rootElem.GetElementsByTagName("Grade"); foreach (XmlElement grade in gradeNodes) { string gradename = grade.GetAttribute("GradeName"); Grade newGrade = new Grade(gradename); foreach (XmlNode course in (grade["CheckingInCourseList"].GetElementsByTagName("Course"))) { string CourseID = ((XmlElement)course).GetAttribute("CourseID"); string CourseName = ((XmlElement)course).GetAttribute("CourseName"); string TeacherName = ((XmlElement)course).GetAttribute("TeacherName"); string CourseDirection = ((XmlElement)course).GetAttribute("CourseDirection"); DayOfWeek WeekIndex = (DayOfWeek)(int.Parse(((XmlElement)course).GetAttribute("WeekIndex"))); int StartWeek = int.Parse(((XmlElement)course).GetAttribute("StartWeek")); int EndWeek = int.Parse(((XmlElement)course).GetAttribute("EndWeek")); int StartClassIndex = int.Parse(((XmlElement)course).GetAttribute("StartClassIndex")); int EndClassIndex = int.Parse(((XmlElement)course).GetAttribute("EndClassIndex")); Course newCourse = new Course(CourseID, CourseName, TeacherName, CourseDirection, WeekIndex, StartClassIndex, EndClassIndex, StartWeek, EndWeek); try { newGrade.AddCheckingInCourse(newCourse); } catch (ItemExistException ex) { MessageBox.Show(ex.Message); return; } } try { foreach (XmlElement classitem in grade["ClassList"].GetElementsByTagName("Class")) { string ClassName = classitem.GetAttribute("ClassName"); Class newClass = new Class(ClassName); foreach (XmlElement student in classitem["MemberList"].GetElementsByTagName("Student")) { string StudentID = student.GetAttribute("StudentID"); string StudentName = student.GetAttribute("StudentName"); string ClassID = student.GetAttribute("ClassID"); Student newStudent = new Student(StudentID, StudentName, ClassID); foreach (XmlElement course in student["CourseList"].GetElementsByTagName("Course")) { string CourseID = course.GetAttribute("CourseID"); foreach (Course item in newGrade.CheckingInCourseList) { try { if (item.CourseID == CourseID) { newStudent.AddClass(new Course(item)); } } catch (ItemExistException) { continue; } } } try { newClass.AddMember(newStudent); } catch (ItemExistException ex) { MessageBox.Show(ex.Message); return; } } try { newGrade.AddClass(newClass); } catch (ItemExistException ex) { MessageBox.Show(ex.Message); return; } } } catch (Exception) { } try { GradeList.Add(newGrade); } catch (ItemExistException ex) { MessageBox.Show(ex.Message); return; } } }