public static WorkConditonSet Read() { string path = Directory.GetCurrentDirectory() + "\\" + ConstVar.UserDataStr + "\\" + ConstVar.TemplateCorrespondTableFileName; XmlDocument doc = new XmlDocument(); doc.Load(path); XmlNode rootNode = doc.GetElementsByTagName("Root")[0]; if (rootNode == null) { return(new WorkConditonSet()); } WorkConditonSet set = new WorkConditonSet(); foreach (XmlNode node in rootNode.ChildNodes) { foreach (XmlNode childNode in node.ChildNodes) { foreach (XmlNode child in childNode.ChildNodes) { if (node.Name == "LineTower") //直线塔、直转塔 { set.LineTower.Add(child.InnerXml.Trim(), childNode.Attributes.GetNamedItem("Type").InnerText + child.Attributes.GetNamedItem("Type").InnerText); //添加具体key,value映射关系 } else if (node.Name == "CornerTower") //终端塔、分支塔、转角塔 { set.CornerTower.Add(child.InnerXml.Trim(), childNode.Attributes.GetNamedItem("Type").InnerText + child.Attributes.GetNamedItem("Type").InnerText); //添加具体key,value映射关系 } } } } return(set); }
/// <summary> /// 取值 /// </summary> /// <param name="tower"></param> /// <param name="key"></param> /// <param name="set"></param> /// <returns></returns> public static string ConvertWorkConditionCode(string tower, string key, WorkConditonSet set) { string value = ""; if (tower == "直线塔" || tower == "直转塔" || tower == "直线转角塔") { set.LineTower.TryGetValue(key.Trim(), out value); if (string.IsNullOrEmpty(value))//特殊处理的key { foreach (string itemKey in set.LineTower.Keys) { if (key.Contains(itemKey)) { set.LineTower.TryGetValue(itemKey, out value); break; } } } } else if (tower == "终端塔" || tower == "分支塔" || tower == "转角塔") { set.CornerTower.TryGetValue(key.Trim(), out value); if (string.IsNullOrEmpty(value))//特殊处理的key { foreach (string itemKey in set.CornerTower.Keys) { if (key.Contains(itemKey)) { set.CornerTower.TryGetValue(itemKey, out value); break; } } } } if (char.Parse(key.Substring(key.Length - 1)) >= 97) { value += " 第" + key.Substring(key.Length - 1) + " 组挂点"; } return(value); }