如何将XElement添加到文档中,避免出现“结构不正确的文档”错误?

// 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); 

add元素后块是问题所在。 当它到达添加时它指出:

此操作将创建结构不正确的文档。

我犯的是什么愚蠢的错误?

编辑:

是的,我正在阅读XDocument ,而不是XElement 。 关于何时支持其中一个的任何建议?

看起来您正在尝试将新元素添加为文档根目录的子元素。 如果是这样,那么您需要将Add语句更改为以下内容。

 var newElement = new XElement("Id", "0", new XElement("Balanace", "3000")); document.Root.Add(newElement); 

直接添加到文档会添加另一个违反XML结构的根元素。

您正在有效地尝试添加这些对象不喜欢的新根元素。 我假设document是XDocument? 通过将其添加到根节点,将其放置在根节点内。 使用:

document.Root.Add(newElement)document.FirstNode.Add(newElement)