我在使用C#將元素添加到XML文件時遇到了問題。我在我的diff目錄中有我的App.config
文件。所以我使用LINQ來檢索我想要的值並從TextBoxes中設置值。使用C#添加鍵值XML元素
<appSettings>
<add key="Something" value="false" />
<add key="UserName" value="user0001" />
<add key="Password" value="123456" />
<add key="Environment" value="" />
<add key="DBUserName" value="DBname23" />
<add key="DBPassword" value="12345678" />
</appSettings>
以上是我的XML文件。我能夠檢索UserName
和Password
的值並將其設置爲加密的值。下面我做的方式顯示:
var doc1 = XDocument.Load(appConfigFile1);
var list1 = from appNode in doc1.Descendants("appSettings").Elements()
where appNode.Attribute("key").Value == "UserName"
select appNode;
var list2 = from appNode in doc1.Descendants("appSettings").Elements()
where appNode.Attribute("key").Value == "Password"
select appNode;
var list3 = from appNode in doc1.Descendants("appSettings").Elements()
where appNode.Attribute("key").Value == "DBUserName"
select appNode;
var list4 = from appNode in doc1.Descendants("appSettings").Elements()
where appNode.Attribute("key").Value == "DBPassword"
select appNode;
var element1 = list1.FirstOrDefault();
var element2 = list2.FirstOrDefault();
var element3 = list3.FirstOrDefault();
var element4 = list4.FirstOrDefault();
element1.Attribute("value").SetValue(txtbox1);
element2.Attribute("value").SetValue(txtbox2);
element3.Attribute("value").SetValue(txtbox3);
element4.Attribute("value").SetValue(txtbox4);
doc1.Save(appConfigFile1);
的要求是這樣的,如果從XML文件中的元素之一被刪除時,我應該能夠創建具有鍵和值相同的元素。
實施例:請與下面比較上面的XML:
<appSettings>
<add key="HasUI" value="false" />
<add key="Password" value="123456" />
<add key="Environment" value="" />
<add key="DBUserName" value="DBname23" />
<add key="DBPassword" value="12345678" />
</appSettings>
上方元件用戶名缺失。那麼,如何創建一個XML元素,如 <add key="UserName" value="" />
並將其設置爲XML文件中的相同位置?
我在C#中加載XML文件時遇到的錯誤是NullReferenceException。
請幫幫我。
爲什麼它必須是爲了?我只是在我的XML戳(我實際上做我的PowerShell的這一點) – jcolebrand 2012-07-24 21:16:14
你想改變app.config或只是把一個默認值,當你沒有在app.config中的值? – Clueless 2012-07-24 21:18:36
@jcolebrand嘿!我不需要這樣做,我已經編輯了這個問題 – user1410658 2012-07-24 21:20:28