【问题标题】:Unable to create an xml file with a child element inside a child element using C#无法使用 C# 在子元素内创建具有子元素的 xml 文件
【发布时间】:2019-07-06 18:29:11
【问题描述】:

我希望创建一个以“Package”为根节点的 xml 文件,“types”为其子节点,“members”为“types”的子节点。另一个“name”节点,将成为“members”节点的兄弟节点。

XDocument doc = new XDocument(new XElement("Package"));

            foreach (var group in componentsGroupedByType)
            {
                 doc.Root.Add(new XElement("types"));

                    foreach (var user in group)
                    {
                        doc.Root.Add(new XElement("members", user.Item2));
                    }
                 doc.Root.Add(new XElement("name", group.Key));
            }

预期输出:

<Package>
   <types>
     <members>xyz</members>
     <members>xyz</members>
     <name>abc</name>
   </types>

   <types>
     <members>xyz</members>
     <members>xyz</members>
     <name>abc</name>
   </types>
</Package>

【问题讨论】:

    标签: c# linq-to-xml


    【解决方案1】:

    &lt;members&gt;&lt;name&gt; 元素应该添加到您创建的 &lt;types&gt; 元素中,而不是文档根目录中。

    改为这样做:

    var doc = new XDocument(
        new XElement("Package",
            from g in componentsGroupedByType
            select new XElement("types",
                from u in g
                select new XElement("members", u.Item2),
                new XElement("name", u.Key)
            )
        )
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      • 2014-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-19
      • 2018-10-13
      相关资源
      最近更新 更多