2014-09-24 4 views
1

Например, если у меня есть список с двумя объектами, и я хочу поместить их в XML-файл с помощью Xelement и попытаться выполнить цикл через объекты, которые он поместил, - это объекты второго объекта в первое имя Xelement, потому что у них одинаковый тэг Xelement.Добавление Xelement в существующий Xelement в цикле foreach

Как я могу сказать Xelement, что он должен быть уникальным в некотором роде? Таким образом, он не будет помещать второй объект в первый тег пользователя, а во второй.

List<People> people -> has two items 

foreach (var person in people) 
{ 
xmlDoc.Element("people").Add(new XElement("person"............ 

} 

пример вывода XML:

<people> 
    <person></person> 
    <person></person> 
</people> 
<people> 
</people> 
+1

Давая ему -1 без комментариев о «Почему» не полезно. ;) Я могу опубликовать, как весь код здесь. Но я предполагаю, что это уже ясно, поскольку это не тот жесткий предмет. – Ibsonic

ответ

1

Ничего, я нашел ответ.

Использование Element даст вам первый элемент, который он может найти в вашем XML-документе.

с использованием Elements("people").Last().Element("person").Add даст вам последний в коллекции. Поскольку я зацикливаю, хотя объекты, которые будут последними, всегда будут теми, в которых я сейчас.

Спасибо в любом случае.

+0

Спасибо, еще полезно в 2016 году :) –

1

Ее не очень понятно из вопроса, но может быть ваш искать что-то вроде этого?

foreach (var p in people) 
    { 
     XElement xElement = new XElement("people"); 

     foreach (var person in p) 
     { 
      xElement.Add(new XElement("person")); // add other elements, attributes etc..., 
     } 

     xDoc.Add(xElement); 
    }