如何将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)
- 如何在较大的图像中检测小图像的发生?
- 在Outlook加载项中以MIME格式(* .eml)保存邮件
- 如何从用户的计算机获取有用的WPF .NET错误信息?
- VS2015 C#interactive:错误CS7069:引用类型’Object’声称它是在’System.Runtime’中定义的,但是找不到它
- Settings.Default。始终返回默认值而不是持久存储中的值(XML文件)
- 将json属性反序列化为bool或double
- 为什么我的绑定DataGridView抛出“操作无效,因为它导致对SetCurrentCellAddressCore函数的可重入调用”错误?
- 阅读带有双引号的csv与lumenwork csv阅读器
- 具有异步lambda和Task.WaitAll的Task.Factory.StartNew