假如一个xml文件如下:
<?xml version="1.0" encoding="utf-8"?> <!-- 注意: 除了手动编辑此文件以外,您还可以使用 Web 管理工具来 配置应用程序的设置。可以使用 Visual Studio 中的“网站”->“ASP.NET 配置” 选项。 设置和注释的完整列表在 machine.config.comments 中,该文件通常位于 \Windows\Microsoft.NET\Framework\v2.0.xxxxx\Config 中 --> <configuration> <appSettings> <add key="StartupFileWatch" value="True" /> <add key="MaxSize" value="2097152" /> <add key="MinSize" value="10" /> <add key="WatchDir" value="UpLoadFolder" /> <add key="IgnorePostfix" value=".html;.htm;.js" /> <add key="CsCommand" value="1" /> <add key="PeCommand" value="1" /> </appSettings> </configuration>
/// <summary> /// 是否启动实时监控 /// </summary> static public bool StartupFileWatch { get { string str = XML.GetConfig("StartupFileWatch",@"Config\TopWinCMS.FileWatcher.config"); return Convert.ToBoolean(str); } set { XML.SaveSetting("StartupFileWatch",value.ToString(),@"Config\TopWinCMS.FileWatcher.config"); } }
/// <summary> /// 读取 XML中指定节点值 /// </summary> /// <param name="strKeyName"></param> /// <returns></returns> public static string GetConfig(string strKeyName) { return GetConfig(strKeyName,"Web.config"); } /// <summary> /// 读取 XML中指定节点值 /// </summary> /// <param name="strKeyName">节点键名</param> /// <returns>指定节点键值</returns> public static string GetConfig(string strKeyName,string strWhich) { string configpath; try { configpath = string.Concat(System.Web.HttpRuntime.AppDomainAppPath,@"\",strWhich); } catch { configpath = System.Windows.Forms.Application.StartupPath; if (configpath.EndsWith(@"\bin")) { configpath = configpath.Substring(0,configpath.Length - 4); } configpath = string.Concat(configpath,strWhich); } using (XmlTextReader tr = new XmlTextReader(configpath)) { while (tr.Read()) { if (tr.NodeType == XmlNodeType.Element) { if (tr.Name == "add" && tr.GetAttribute("key") == strKeyName) { return tr.GetAttribute("value"); } } } } return null; }
/// <summary> /// 保存Web.config /// </summary> /// <param name="strKeyName">节点名</param> /// <param name="strKeyValue">要保存的值</param> /// <param name="strWhich">哪个配置文件</param> public static void SaveSetting(string strKeyName,string strKeyValue,string strWhich) { //创建XML文档实例 System.Xml.XmlDocument XMLWebSetting = new System.Xml.XmlDocument(); //打开XML文档 XMLWebSetting.Load(System.Web.HttpRuntime.AppDomainAppPath + "/" + strWhich); //查找节点所在位置 System.Xml.XmlNodeList XmlNodeList = XMLWebSetting.SelectSingleNode("//appSettings").ChildNodes; foreach (System.Xml.XmlNode xn in XmlNodeList) { if (xn.Attributes["key"].InnerText == strKeyName) { xn.Attributes["value"].InnerText = strKeyValue; XMLWebSetting.Save(System.Web.HttpContext.Current.Server.MapPath("~/" + strWhich + "")); break; } } }