假如一个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;
}
}
}