/// <summary> /// 解析XML的设备信息 /// </summary> /// <param name="xmlNodeList"></param> internal void Analyze(XmlNodeList xmlNodeList) { _devdefs.Clear(); if (xmlNodeList == null || xmlNodeList.Count == 0) { Console.WriteLine("没有设备信息可以进行解析"); return; } foreach (XmlElement e in xmlNodeList) { string id = e.GetAttribute("id"); string name = e.GetAttribute("name"); string connecttype = e.GetAttribute("connecttype"); Devdef devdef = new Devdef(id, name, connecttype); foreach (XmlElement a in e.ChildNodes) { string attid = a.GetAttribute("id"); string attname = a.GetAttribute("name"); int start = int.Parse(a.GetAttribute("start")); int ent = int.Parse(a.GetAttribute("end")); DevAtt devAtt = new DevAtt(attid, attname, start, ent); foreach (XmlElement d in a.ChildNodes) { string key = d.GetAttribute("key"); string value = d.GetAttribute("value"); AttDic attDic = new AttDic(key, value); devAtt.AddAttDic(attDic); } devdef.AddDevAtt(devAtt); } _devdefs.Add(devdef); } }
/// <summary> /// 添加字典值 /// </summary> /// <param name="attDic"></param> internal void AddAttDic(AttDic attDic) { if (AttDics == null) { AttDics = new List <AttDic>(); } AttDics.Add(attDic); }
/// <summary> /// 添加属性字典值 /// </summary> /// <param name="devdefid">所属设备类型</param> /// <param name="devattid">所属设备属性</param> /// <param name="attDic">字典信息</param> internal void AddAttDic(string devdefid, string devattid, AttDic attDic) { XmlElement attDicX = XMLMaster.XMLHelper._xmldoc.CreateElement("Dic"); attDicX.SetAttribute("key", attDic.Key); attDicX.SetAttribute("value", attDic.Value); XMLMaster.XMLHelper.AddToNode("//Config/Devdefs/Devdef[@id='" + devdefid + "']" + "/Att[@id='" + devattid + "']", attDicX); }
/// <summary> /// 修改属性字典值 /// </summary> /// <param name="devdefid">所属设备类型</param> /// <param name="devattid">所属设备属性</param> /// <param name="attDic">字典信息</param> internal void EditeAttDic(string devdefid, string devattid, AttDic attDic) { XmlElement attdicX = XMLMaster.XMLHelper.GetSingleNode("//Config/Devdefs/Devdef[@id='" + devdefid + "']" + "/Att[@id='" + devattid + "']/Dic[@key='" + attDic.Key + "']"); if (attdicX != null) { attdicX.SetAttribute("value", attDic.Value); } }
/// <summary> /// 修改属性字典值 /// </summary> /// <param name="devdefid">所属设备类型</param> /// <param name="devattid">所属设备属性</param> /// <param name="attDic">字典信息</param> public static void EditeAttDic(string devdefid, string devattid, AttDic attDic) { Devdefs.EditeAttDic(devdefid, devattid, attDic); SaveAndReload(); }