// Remove element with ID of 1
var userIds = from user in document.Descendants("Id")
where user.Value == "1"
select user;
userIds.Remove();
SaveAndDisplay(document);
// Add element back
var newElement = new XElement("Id", "0",
new XElement("Balance", "3000"));
document.Add(newElement);
SaveAndDisplay(document);
添加元素后块是问题所在。当它到达添加时它表明:
此操作会创建一个 结构不正确的文件。
我犯了什么愚蠢的错误?
修改
是的,我的阅读时间为XDocument
,而不是XElement
。关于何时支持其中一方的任何建议?
答案 0 :(得分:39)
看起来您正在尝试将新元素添加为文档根目录的子元素。如果是,那么您需要将Add
语句更改为以下内容。
var newElement = new XElement("Id", "0", new XElement("Balanace", "3000"));
document.Root.Add(newElement);
直接添加到文档会添加另一个违反XML结构的根元素。
答案 1 :(得分:8)
您正在尝试添加这些对象不喜欢的新根元素。我假设document
是一个XDocument?通过将其添加到根节点,将其放置在根节点内。使用:
document.Root.Add(newElement)
或
document.FirstNode.Add(newElement)