我希望创建一个以“ Package”作为根节点的xml文件,“ types”是其子节点,进一步的“ members”是“ types”的子节点。另一个“名称”节点,将成为“成员”节点的同居节点。
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>
答案 0 :(得分:2)
应该将<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)
)
)
);