无法使用 C# 创建子元素内包含子元素的 xml 文件

Unable to create an xml file with a child element inside a child element using C#

我想创建一个 xml 文件,其中 "Package" 作为根节点,"types" 是它的子节点,"members" 是 [= 的子节点18=]。另一个 "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>

<members><name> 元素应该添加到您创建的 <types> 元素,而不是文档根目录。

改为这样做:

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