2013-05-06 49 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);