[原创]简单的XML配置文件读写类

本文介绍了一个简单的XML配置文件读写类实现,该类能够读取和修改XML配置文件中的键值。文章提供了完整的源代码,并探讨了如何获取XML根节点名称的方法。
以前读写配置都用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
    }

}

转载于:https://www.cnblogs.com/XingfuStar/archive/2007/09/13/891682.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值