【问题标题】:Difficulty appending to XML file using Linq使用 Linq 难以附加到 XML 文件
【发布时间】:2013-04-30 09:37:24
【问题描述】:

我有一个看起来像这样的 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 的人可以告诉我我做错了什么让它创建一个像这样的空配置元素?谢谢!

【问题讨论】:

    标签: c# xml linq append


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      那是因为您附加到设置,而不是配置

      试试:

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

      【讨论】:

        【解决方案3】:

        试试这个

        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-13
          • 1970-01-01
          • 1970-01-01
          • 2014-08-17
          • 2021-07-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多