2015-10-11 58 views
1

這是我在用C#的XDocument - 添加值,以現有的XML

private void dir_TextBox_TextChanged(object sender, EventArgs e) 
{ 
     string _DIR = dir_TextBox.Text.ToString();dir 
     XDocument _config = XDocument.Load(@"/ProgramData\app\appConfig.xml"); 
     _config.Root.Element("root").Element("node1").Add(new XElement("value", _DIR));   
     _config.Save(@"/ProgramData\app\appConfig.xml"); 
} 

我有一個XML

<root> 
    <node1> 
    <value></value> 
    </node1> 
</root> 

,並要添加

<root> 
    <node1> 
    <value>a string</value> 
    </node1> 
</root> 

我有嘗試了幾種方法來做到這一點,但不斷收到錯誤「附加信息:未將對象引用設置爲對象的實例。」

任何幫助,將不勝感激。 謝謝。

+0

」未設置對象實例的對象引用「表示您在某處有'null'。你確定你正在加載文件嗎? –

回答

2

_config.Root已經得到了「root」元素。 你必須設置(更新)一個新的值(「一個字符串」)到現有的元素,「價值」,因爲你的XML文件已經有「價值」元素。 「

private void dir_TextBox_TextChanged(object sender, EventArgs e) 
{ 
     XDocument _config = XDocument.Load(@"/ProgramData\app\appConfig.xml"); 
     _config.Root.Element("node1").Element("value").Value = "a string";   
     _config.Save(@"/ProgramData\app\appConfig.xml"); 
} 
+0

非常感謝這一天大部分時間都在撓撓我的腦袋:-) –