C#中使用代码动态改变配置文件信息
配置文件实际上就是一个XML文件,所以我们可以使用XmlDocument来进行操作。
代码如下:
static void Main(string[] args) { XmlDocument xDoc = new XmlDocument(); xDoc.Load("../../App.config");//加载xml文件 XmlNode xNode; XmlElement xElem1; XmlElement xElem2; xNode = xDoc.SelectSingleNode("//appSettings");//获取指定的xml子节点 xElem1 = (XmlElement)xNode.SelectSingleNode("//add[@key='type']");//获取子节点中指定的子节点 //如果能获取到节点,就修改节点的value值 if (xElem1 != null) { xElem1.SetAttribute("value", "driver");//给节点中的value属性赋值(修改操作) } //如果不能获取到节点,就创建节点 else { xElem2 = xDoc.CreateElement("add"); xElem2.SetAttribute("key", "type"); xElem2.SetAttribute("value","teacher"); xNode.AppendChild(xElem2); } xDoc.Save("../../App.config");//保存xml文档 Console.WriteLine("保存成功!"); }
1.加载Xml文档
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlFilePath);
2.获取想要的节点(每个下级节点可以这样获取)
XmlNode configurationNode =xmlDoc.SelectSingleNode("configuration");
XmlNode appSettingsNode = configurationNode.SelectSingleNode("appSettings");//查找服务节点
3.遍历节点下的所有子节点
for (int i = 0; i < appSettingsNode.ChildNodes.Count; i++)
{
XmlNode addNode = appSettingsNode.ChildNodes[i];
4.获取子节点的值或设置子节点的值
addNode.Attributes["key"].Value
}
5.对xml进行保存(设置子节点值的时候)
xmlDoc.Save(xmlFilePath);