/// <summary> /// 设置班级模型名称及修改IP对应的学生姓名 /// </summary> /// <param name="xdoc"></param> /// <param name="classname"></param> public static void SetStuName(DataTable dts, string classname, string savepath, string xmlfile) { XmlDocument xmlsave = new XmlDocument(); string xmltype = xmlfile.Substring(xmlfile.LastIndexOf(".") + 1); xmlsave = ReadXml(xmlfile); XmlNode root = xmlsave.SelectSingleNode("classmodel"); //这行是专门用于设置模型的班级姓名,请匆改动。 root.Attributes["name"].Value = classname; //设置班级模型名称 XmlNodeList nodeList = root.ChildNodes; if (nodeList[0].Name != "student") { XmlNode newroot = root.SelectSingleNode("students"); nodeList = newroot.ChildNodes; } foreach (XmlNode xn in nodeList) { XmlNode addressNode = xn.SelectSingleNode("address"); string ip = addressNode.Attributes["IP"].Value; StuMsg theStu = GetStuNameByIp(dts, ip); //根据IP,获取该班级该IP就座的学生姓名 if (theStu != null && theStu.isOk) { XmlNode nameNode = xn.SelectSingleNode("name"); nameNode.InnerText = theStu.Sname;//如果有就座学生则修改 XmlNode groupNode = xn.SelectSingleNode("group"); if (theStu.Sleader) { groupNode.Attributes["leader"].Value = "1"; } else { groupNode.Attributes["leader"].Value = "0"; } if (theStu.Sgroup > 0) { groupNode.InnerText = theStu.Sgtitle; } } } string savefile = TodaySavePath(savepath) + @"\" + classname + "." + xmltype; if (File.Exists(savefile)) { File.Delete(savefile); } xmlsave.Save(savefile);//保存生成的新班级模型 }
/// <summary> /// 根据IP返回姓名 /// </summary> /// <param name="dtclass"></param> /// <param name="ip"></param> /// <returns></returns> private static StuMsg GetStuNameByIp(DataTable dtclass, string ip) { StuMsg mystu = new StuMsg(); int dcount = dtclass.Rows.Count; LearnSite.BLL.Students sbll = new BLL.Students(); for (int i = 0; i < dcount; i++) { string dtip = dtclass.Rows[i]["Qip"].ToString(); if (dtip.Equals(ip)) { mystu.Sname = dtclass.Rows[i]["Qname"].ToString(); mystu.Sleader = bool.Parse(dtclass.Rows[i]["Sleader"].ToString()); int sgroup = 0; if (dtclass.Rows[i]["Sgroup"] != null && dtclass.Rows[i]["Sgroup"].ToString() != "") { sgroup = Int32.Parse(dtclass.Rows[i]["Sgroup"].ToString()); } mystu.Sgroup = sgroup; if (mystu.Sleader) { mystu.Sgtitle = dtclass.Rows[i]["Sgtitle"].ToString(); } else { if (sgroup > 0) { mystu.Sgtitle = sbll.GetSgtitle(sgroup); } else { mystu.Sgtitle = ""; } } mystu.isOk = true; break; } } return(mystu); }