简单的XML的读取修改

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

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念