使用XML序列化程序和TextWriter将节点附加到XML根节点

问题描述 投票:0回答:2

可以使用XML序列化器将数据附加到现有XML文档中。我目前正在这样做]

string filePath = "Data.xml";
var serializer = new XmlSerializer(typeof(Event));
extWriter writer = new StreamWriter(filePath, true);
serializer.Serialize(writer, event);

这种方式添加了像根节点而不是子节点这样的元素……我也将LINQ应用于XML,这种方式可以正常工作,但是这种方式似乎是硬编码的。使用这种方法有什么方法可以实现。

c# xml linq xmlserializer
2个回答
0
投票

不,没有加载文件的方法。序列化程序始终处理整个文件。

所以进行修改的正确方法是将文件加载到内存中,对其进行修改,然后再次保存。

对于直接匿名Xml-Node-Level操作,您应该使用XmlDocument.Load,而不是XmlSerializer。 XmlSerializer首先将XML转换为您的自定义类。如果要添加自定义对象,这可能会更简单,如果要添加xml节点,则使用XmlDocument会更好。


0
投票

如果现在数据在文件末尾

您可以通过文本方式打开文件寻求结尾

删除最后一行

写入数据

并再次添加最后一行

仅在写入大型统一文件的情况下才建议这样做

© www.soinside.com 2019 - 2024. All rights reserved.