惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
G
Google Developers Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC
有赞技术团队
有赞技术团队
Vercel News
Vercel News
MongoDB | Blog
MongoDB | Blog
M
MIT News - Artificial intelligence
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
B
Blog RSS Feed
I
InfoQ
Blog — PlanetScale
Blog — PlanetScale
博客园_首页
The Cloudflare Blog
B
Blog
C
Check Point Blog
Stack Overflow Blog
Stack Overflow Blog
IT之家
IT之家
U
Unit 42
D
Docker
月光博客
月光博客
aimingoo的专栏
aimingoo的专栏
博客园 - Franky
A
About on SuperTechFans

博客园 - 幸福★星

开心网外挂,开心网自动管理程序,现已经开发完成 Flex 图片 幻灯片效果初探 FDS.SWC 下载 解决使用FluorineFx实现Remoting通讯时 报 "Channel definition, mx.messaging.channels.RTMPChannel, can not be found" 错的问题 [转载]Flex 2.0 实现SWF全屏 - 幸福★星 [原创]Flex 与 Asp.Net 通过 Remoting 方式进行通讯 (四) [原创]Flex 与 Asp.Net 通过 Remoting 方式进行通讯 (三) [原创]Flex 与 Asp.Net 通过 Remoting 方式进行通讯 (二) [原创]Flex 与 Asp.Net 通过 Remoting 方式进行通讯 (一) [原创]简单的读写注册表配置类 [原创]C#不调用API读写INI文件类 VB 6.0 利用CopyMemory实现 指针功能 Sql Server 2000 中 将 0,1 字段,换成 是,否 的查询语句 [原创]C# 操作Excel的类 MSN病毒"性感相册"一个变种的手工杀毒方法 TFS 查看工作区,删除工作区,删除项目 开如使用TFS VS.NET 2005 SP1 安装注意 C# 系统热键类的修正
[原创]简单的XML配置文件读写类
幸福★星 · 2007-09-13 · via 博客园 - 幸福★星

以前读写配置都用INI文件,现在写一个读写XML的类,功能比较简单

http://xingfustar.cnblogs.com

我的问题是如何能得到根节点的名字,而不是像现在这样写死为“Configuration"。希望大家多多讨论,提出宝贵意见

/*----------------------------------------------------------------
 * 版权:
http://XingFuStar.cnblogs.com
 * 
 * 文件名: XmlConfig
 * 文件功能描述: 简单的XML配置文件读写类
 * 
 * 作者:XingFuStar
 * 日期:2007年9月13日
 * 
 * 当前版本:V1.0.0
 * 
 * 修改日期:
 * 修改内容:
 *---------------------------------------------------------------
*//*----------------------------------------------------------------
 * 相关的XML文件模版

<?xml version="1.0" encoding="utf-8"?>
<Configuration>
    <Section1>
        <Key1>Value</Key1>
        
        <KeyN>Value</KeyN>
    </Section1>
    
    <SectionN>
        <Key1>Value</Key1>
        
        <KeyN>Value</KeyN>
    </SectionN>
</Configuration>
 *----------------------------------------------------------------

*/using System;
using System.Xml;
using System.Diagnostics;namespace XingFuStudio.Config
{
    
class XmlConfig
    {
        
private string xmlPath;
        
private bool isConfig;
        
private XmlDocument xmlDocument;/// <summary>
        
/// 构造函数:装载配置文件
        
/// </summary>
        
/// <param name="xmlPath">配置文件的路径</param>
        public XmlConfig(string xmlPath)
        {
            
//请不要删除以下信息
            
//版权:http://XingFuStar.cnblogs.com

            
this.xmlDocument = new XmlDocument();
            
this.XmlPath = xmlPath;
        }
/// <summary>
        
/// Xml配置文件的路径
        
/// </summary>
        public string XmlPath
        {
            
set
            {
                xmlPath 
= value;
                isConfig 
= OnXmlPathChange();
            }
        }
/// <summary>
        
/// 读取配置
        
/// </summary>
        
/// <param name="section">节点</param>
        
/// <param name="key"></param>
        
/// <param name="value">返回的键值</param>
        
/// <returns>键值</returns>
        
/// <returns>是否读取成功</returns>
        public bool ReadConfig(string section, string key, ref string value)
        {
            
bool isRead = false;
            
try
            {
                
if (isConfig)
                {
                    value 
= xmlDocument.SelectSingleNode("Configuration").SelectSingleNode(section).SelectSingleNode(key).InnerText;
                    isRead 
= true;
                }
            }
            
catch (Exception ex)
            {
                Debug.Print(ex.Message);
            }
            
return isRead;
        }
/// <summary>
        
/// 写入配置
        
/// </summary>
        
/// <param name="section">节点</param>
        
/// <param name="key"></param>
        
/// <param name="value">要写入的新键值</param>
        
/// <returns>是否写入成功</returns>
        public bool WriteConfig(string section, string key, string value)
        {
            
bool isWrited = false;
            
try
            {
                
if (isConfig)
                {
                    xmlDocument.SelectSingleNode(
"Configuration").SelectSingleNode(section).SelectSingleNode(key).InnerText = value;
                    xmlDocument.Save(xmlPath);
                    isWrited 
= true;
                }
            }
            
catch (Exception ex)
            {
                Debug.Print(ex.Message);
            }
            
return isWrited;
        }
#region 私有方法
        
private bool OnXmlPathChange()
        {
            
bool isLoaded = false;
            
try
            {
                xmlDocument.Load(xmlPath);
                isLoaded 
= true;
            }
            
catch (Exception ex)
            {
                Debug.Print(ex.Message);
            }
            
return isLoaded;
        }
        
#endregion
    }

}