天天看點

C#讀寫配置檔案(XML檔案)

.xml檔案格式如下

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE DataAccess[]>

<DataAccess>

<appSettings>

<add key="StartTime" value="9" />

<add key="EndTime" value="6" />

</appSettings>

</DataAccess>

C#初始化

private static XmlDocument xmlIAUConfig;

static ConfigManager()

{

xmlIAUConfig = new XmlDocument();

XMLPath = Assembly.GetExecutingAssembly().CodeBase;

Int32 i = XMLPath.LastIndexOf("/");

XMLPath = XMLPath.Remove(i);

XMLPath = XMLPath + @"/abc.xml";

xmlIAUConfig.Load(XMLPath);

}

擷取某個節點的值

public static String GetValue(String key)

{

xmlIAUConfig.Load(XMLPath);

String value;

String path = @"//DataAccess/appSettings/add[@key='" + key + "']";

XmlNodeList xmlAdds = xmlIAUConfig.SelectNodes(path);

if (xmlAdds.Count == 1)

{

XmlElement xmlAdd = (XmlElement)xmlAdds[0];

value = xmlAdd.GetAttribute("value");

}

else

{

throw new Exception("IAUConfig配置資訊設定錯誤:鍵值為" + key + "的元素不等于1");

}

return value;

}

修改某個節點為謀值

public static void SavaConfig(string strKey, string strValue)

{

XmlDocument XMLDoc = new XmlDocument();

XMLDoc.Load("abc.xml");

XmlNodeList list = XMLDoc.GetElementsByTagName("add");

for (int i = 0; i < list.Count; i++)

{

if (list[i].Attributes[0].Value == strKey)

{

list[i].Attributes[1].Value = strValue;

}

}

StreamWriter swriter = new StreamWriter("abc.xml");

XmlTextWriter xw = new XmlTextWriter(swriter);

xw.Formatting = Formatting.Indented;

XMLDoc.WriteTo(xw);

xw.Close();

swriter.Close();

}