在foreach循环中将Xelement添加到现有的Xelement中

时间:2014-09-24 14:14:20

标签: c# .net xml xelement

例如,如果我有一个包含两个对象的列表,并且我想使用Xelement将它们放入XML文件并尝试遍历它将第二个对象项放入第一个Xelement名称的对象,因为它们是具有相同的Xelement标记名。

我怎样才能告诉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>

2 个答案:

答案 0 :(得分: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);
    }

答案 1 :(得分:1)

别介意我找到了答案。

使用Element将为您提供他在XML文档中可以找到的第一个元素。

使用Elements("people").Last().Element("person").Add 将为您提供该系列中的最后一个。当我循环通过对象时,最后一个将始终是那个时刻的那个。

非常感谢。