2013-05-06 50 views
0

我有一個XML文檔,看起來像難度使用LINQ

<Settings> 
    <Config> 
     <type>stuff</type> 
     <length>stuff</length> 
     <ID>1</ID> 
    </Config> 
</Settings> 

我試圖將其追加使用

Document loadedDoc = XDocument.Load (file); 
loadedDoc.Element("Settings").Add(new XElement("Config"), 
            new XElement("type", "stuff"), 
            new XElement("length", "stuff"), 
            new XElement("ID", "2")); 
loadedDoc.Save(file); 

什麼我收到的時候我這樣做是

追加到XML文件
<Settings> 
    //the other configs hidden for readability 
    <Config /> <--- WHAT DO?! 0_o 
    <type>stuff</type> 
    <length>stuff</length> 
    <ID>2</ID> 
</Settings> 

有人能更好地熟練linq告訴我它是什麼我做錯了,使它創建一個空配置eleme nt那樣?謝謝!

回答

3

這是因爲,要附加設置,而不是配置

嘗試:

loadedDoc.Element("Settings").Add(
     new XElement("Config", 
        new XElement("type", "stuff"), 
        new XElement("length", "stuff"), 
        new XElement("ID", "2"))); 
+0

這個伎倆!謝謝! – user1548103 2013-05-06 15:38:55

4

你需要通過「配置」元素的構造函數中添加子元素,而不是通過「設置」構造:

loadedDoc.Element("Settings").Add(new XElement("Config", 
          new XElement("type", "stuff"), 
          new XElement("length", "stuff"), 
          new XElement("ID", "2"))); 
1

試試這個

XDocument loadedDoc = XDocument.Load(file); 

     loadedDoc.Element("Settings").Add(new XElement("Config")); 
     loadedDoc.Element("Settings").Element("Config").Add(   
            new XElement("type", "stuff"), 
            new XElement("length", "stuff"), 
            new XElement("ID", "2")); 

     loadedDoc.Save(file);