我已经在这里和谷歌搜索了这个答案,但我找不到一件事,如果这很简单就道歉。
我有以下代码:
private XmlNode loadXMLNode(string configPath, string loggingPath)
{
configFile.Load(configPath);
XmlNode logging = configFile.DocumentElement.SelectSingleNode(loggingPath);
return logging;
}
public string testXMLNodeValue(string configPath, string loggingPath)
{
XmlNode logging = loadXMLNode(configPath, loggingPath);
string value = logging.Attributes["value"].Value;
return value;
}
public void setXMLNodeValue(string configPath, string loggingPath, string newValue)
{
XmlNode logging = loadXMLNode(configPath, loggingPath);
logging.Attributes["value"].Value = newValue;
MessageBox.Show(logging.Attributes["value"].Value);
configFile.Save("C:\\inetpub\\CiresonPortal\\bin\\Cireson.CacheBuilder.Service.exe.config");
}
哪个正确加载XML文件并修改目标节点中的值。但是它也会更改父节点的名称,我不知道为什么。
(如果您想知道为什么最终路径是硬编码的,那是因为在使用配置文件中的路径时根本没有保存文件,但这是另一个线程的问题。)
它应该是这样的:
<logger name="Logger">
<!-- LEVELS: ALL, DEBUG, INFO, WARN, ERROR, FATAL-->
<!-- Suggested for debugging: INFO -->
<!-- Suggested for production: WARN -->
<level value="ERROR" />
但是,一旦上面的代码运行,它看起来像这样:
<root>
<level value="ERROR" />
任何帮助都会非常感激,因为我仍在教自己c#(来自PowerShell背景)。
谢谢。