Невозможно создать XML-файл с дочерним элементом внутри дочернего элемента, используя C # - PullRequest
1 голос
/ 06 июля 2019

Я хочу создать xml-файл с «Package» в качестве корневого узла, «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>

1 Ответ

2 голосов
/ 06 июля 2019

Элементы <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)
        )
    )
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...