/// <summary> /// 将文件转换为PicTabPage对象 /// </summary> /// <param name="path">文件路径</param> /// <returns></returns> public PicTabPage XmlToPic(string path) { PicTabPage pic = new PicTabPage(); XmlDocument XmlLoad = new XmlDocument(); XmlLoad.Load(path); ///查询出根节点 XmlNode root = XmlLoad.SelectSingleNode(RootName); XmlElement picroot = (XmlElement)root; pic.Id = int.Parse(picroot.GetAttribute("ID")); pic.Title = picroot.GetAttribute("Title"); ///查找CodeBox节点 XmlNode MainCodeBoxs = root.SelectSingleNode("MainCodeBoxs"); foreach (XmlNode node in MainCodeBoxs.SelectNodes("CodeBox")) { DataWriteFunction.ReadCodeBoxObject(node, pic); } ///查找BezierLine节点 XmlNode MainBezierLines = root.SelectSingleNode("MainBezierLines"); foreach (XmlNode node in MainBezierLines.SelectNodes("BezierLine")) { DataWriteFunction.ReadBezierLine(node, pic); } ///查找函数节点 foreach (XmlNode node in root.SelectNodes("Function")) { DataWriteFunction.ReadFunction(node, pic); } ///查找属性节点 foreach (XmlNode node in root.SelectNodes("XAribute")) { DataWriteFunction.ReadXAributeObject(node, pic); } XmlLoad.Save(path); return(pic); }
/// <summary> /// 读取函数内容 /// </summary> /// <param name="picnode">代码图节点</param> /// <param name="pic">代码图(类)</param> public static void ReadFunction(XmlNode functionnode, PicTabPage pic) { XmlElement functionElement = (XmlElement)functionnode; string Title = functionElement.GetAttribute("Title"); int ID = int.Parse(functionElement.GetAttribute("ID")); XObject.OpenType myOpenType = XObject.OpenTypeMapping(functionElement.GetAttribute("OpenType")); OverrideType myOverrideType = XObject.OverrideTypeMapping(functionElement.GetAttribute("OverrideType")); PicFunctionTabPage functionpage = pic.LoadFunctionPage(Title, ID, myOpenType, myOverrideType); ///查找CodeBox节点 foreach (XmlNode node in functionnode.SelectNodes("CodeBox")) { DataWriteFunction.ReadCodeBoxObject(node, functionpage); } ///查找BezierLine节点 foreach (XmlNode node in functionnode.SelectNodes("BezierLine")) { DataWriteFunction.ReadBezierLine(node, functionpage); } }