将属性附加到XML文件中的每个元素

时间:2013-01-14 15:17:44

标签: c# .net xml linq-to-xml

我有一个xml,我想在xml文件中为每个元素添加一个属性。

IEnumerable<XElement> childList = from el in xml.Elements()
                                  select el;

textBox1.Text = childList.ToString();

foreach (XElement el in childList)
{
    el.Add(new XAttribute("Liczba_Potomkow", "dziesiec"));
    textBox1.Text = el.ToString();
    xml.Save("Employees.xml");
}

不幸的是,当我打开文件时,第一行似乎受到了影响。 (只有第一个元素获得新属性)。为什么会这样?

1 个答案:

答案 0 :(得分:1)

我认为xmlXDocument?如果是这样,您直接在根元素的上调用Elements() - 因此它找到的唯一元素将是根元素本身。

如果您想为文档中的所有元素执行某些操作,则应使用Descendants()方法。

此外,您的查询表达式毫无意义 - 您可能只使用xml.Elements() - 我真的不认为您应该保存在循环中。

我想你只是想:

foreach (var element in xml.Descendants())
{
    element.Add(new XAttribute("Liczba_Potomkow", "dziesiec"));
}
xml.Save("Employees.xml");