为什么要更改XML节点的父节点?

时间:2015-12-12 22:59:46

标签: c# xml

我已经在这里和谷歌搜索了这个答案,但我找不到一件事,如果这很简单就道歉。

我有以下代码:

        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背景)。

谢谢。

0 个答案:

没有答案