c# - LINQ to XML - 更新节点并将其保存到 XML 文件

标签 c# xml linq-to-xml save

我有一个 XML 文件。 我想更新(添加一些节点)到它。 代码如下所示:

var xmlDocuments = XDocument.Load(filePath);
var documentElementToEdit = xmlDocuments.Element("Container").Element("Documents").Elements("Document").Where(x => x.Element("GUID").Value == GUID).FirstOrDefault();
missingIndexData1 = new XElement("IndexData");
XElement indexData1 = new XElement("Name", "somename");
XElement indexData2 = new XElement("Value", somevalue);
XElement indexData3 = new XElement("DataType", "3");
XElement indexData4 = new XElement("CreationTime", DateTime.Now.ToString("O"));
XElement indexData5 = new XElement("CreationTimeUTC", DateTime.UtcNow.ToString("O"));
missingIndexData1.Add(indexData1);
missingIndexData1.Add(indexData2);
missingIndexData1.Add(indexData3);
missingIndexData1.Add(indexData4);
missingIndexData1.Add(indexData5);
documentElementToEdit.Element("IndexDatas").Add(missingIndexData1);
documentElementToEdit.Save(filePath);

它的作用是仅使用此文档节点覆盖原始 XML 文件。 如何更新原始文件中的文档节点?

最佳答案

What this does is that it overwrittes the original XML file with only this document node. How can I update the document node in the original file?

您需要保存整个文档,而不仅仅是更改的元素。当然,这将重写整个文件,但没有简单的方法可以解决这个问题。

xmlDocuments.Save(filePath);

关于c# - LINQ to XML - 更新节点并将其保存到 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11360574/

相关文章:

python - Python 中 xml.dom.minidom 的空文本节点问题

c# - NServiceBus 处理程序抛出元数据错误

javascript - 解析xml错误

C#线程,多个线程调用相同的方法访问同一个数组会导致速度变慢吗?

java - 获取 JAXB 反/序列化期间的进度信息

c# - 向此 xml 结构中添加一个元素

c# - 为什么这个 LINQ to XML 查询不起作用 (Amazon S3)

c# - Xdocument - 如何转换非 html 安全字符

c# - .Net MAUI 是否与 .NET Standard 2.0 兼容?

c# - 使用 EF Core 加载未映射的属性