我想一次删除所有具有相同名称的元素。即使我有多个具有相同名称的元素,我当前的方法也会一次删除一个。
XDocument doc = XDocument.Load("D:\\test.xml");
var course = new XElement("Course",
new XAttribute("Name", cname),
new XAttribute("Code", ccode),
new XAttribute("Length", clenght));
doc.Element("Departments").Element("Department1").Add(course);
doc.Save("D:\\test.xml");
这是我目前的删除代码: string sss是从文本框中获取的文本。
remove(string sss)
XDocument doc = XDocument.Load("D:\\test.xml");
IEnumerable<XElement> elList =
from el in doc.Descendants("Deparment1").Elements("Course")
where el.Attribute("Name").Value == sss
select el;
// this should filter elements with same name attribute value
foreach (XElement el in elList)
{
el.Remove();
doc.Save("D:\\test.xml");
}
// this should remove them all and update the xml file
@Andrei V如果我把doc.save放在foreach之外它不会改变
答案 0 :(得分:0)
doc.Descendants("Deparment1").Elements("Course")
.Where(el=>el.Attribute("Name").Value == sss)
.Remove();