0

我有一个看起来像的 XML 文档

<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);

当我这样做时,我得到的是

<Settings>
    //the other configs hidden for readability
     <Config />  <--- WHAT DO?! 0_o
     <type>stuff</type>
     <length>stuff</length>
     <ID>2</ID>
</Settings>

更精通 linq 的人可以告诉我我做错了什么让它创建一个像这样的空配置元素吗?谢谢!

4

3 回答 3

4

您需要通过“Config”元素的构造函数添加子元素,而不是通过“Settings”构造函数:

loadedDoc.Element("Settings").Add(new XElement("Config",
                             new XElement("type", "stuff"),
                             new XElement("length", "stuff"),
                             new XElement("ID", "2")));
于 2013-05-06T15:29:45.067 回答
3

那是因为您要附加到 Settings,而不是 Config

尝试:

  loadedDoc.Element("Settings").Add(
        new XElement("Config",
                     new XElement("type", "stuff"),
                     new XElement("length", "stuff"),
                     new XElement("ID", "2")));
于 2013-05-06T15:29:59.680 回答
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);
于 2013-05-06T15:32:46.263 回答