private static XmlDocument GetXml(EN_EventType type, EN_SubType nodeType) { XmlDocument doc; // get from cache if (Global.Cache.dicEventTemplates.ContainsKey(type)) { doc = Global.Cache.dicEventTemplates[type]; } else { doc = GetFullXml(type); } // Full document // var elem = doc.DocumentElement.SelectSingleNode(GetXmlNodeName(nodeType)); // recreate full doc = new XmlDocument(); // remove comments var content = new Regex(" < !--[\\w\\s]*-->|<!---->").Replace(elem.OuterXml, ""); doc.LoadXml(content); // return rezult return(doc); }
private static List <DTO_KeyItem> GetKeyList(EN_EventType type, EN_SubType nodeType) { return(GetXml(type, nodeType).DocumentElement // get main element .SelectNodes("//key").Cast <XmlElement>() // cast .Select(a => new DTO_KeyItem(a)) // get keyItem .Where(a => a.Enable).ToList()); // selecn active }
private static string GetXmlNodeName(EN_SubType nodeType) { switch (nodeType) { case EN_SubType.Content: return("content"); case EN_SubType.Thumbnail: return("thumbnail"); case EN_SubType.Related: return("related"); default: return(""); } }
private static XmlDocument GetXmlNameValue(List <DTO_KeyItem> keyItems, EN_EventType type, EN_SubType nodeType) { // get content XmlDocument doc = GetXml(type, nodeType); // fiil document foreach (XmlElement item in doc.SelectNodes("//key")) { // get keyItem var keyItem = keyItems.Where(a => a.Name == item.GetAttribute("name")).FirstOrDefault(); item.SetAttribute("name", keyItem.Name); item.SetAttribute("value", keyItem.ValueString); } // return document return(doc); }