可以使用XML序列化器将数据附加到现有XML文档中。我目前正在这样做]
string filePath = "Data.xml";
var serializer = new XmlSerializer(typeof(Event));
extWriter writer = new StreamWriter(filePath, true);
serializer.Serialize(writer, event);
这种方式添加了像根节点而不是子节点这样的元素……我也将LINQ应用于XML,这种方式可以正常工作,但是这种方式似乎是硬编码的。使用这种方法有什么方法可以实现。
不,没有加载文件的方法。序列化程序始终处理整个文件。
所以进行修改的正确方法是将文件加载到内存中,对其进行修改,然后再次保存。
对于直接匿名Xml-Node-Level操作,您应该使用XmlDocument.Load,而不是XmlSerializer。 XmlSerializer首先将XML转换为您的自定义类。如果要添加自定义对象,这可能会更简单,如果要添加xml节点,则使用XmlDocument会更好。
如果现在数据在文件末尾
您可以通过文本方式打开文件寻求结尾
删除最后一行
写入数据
并再次添加最后一行
仅在写入大型统一文件的情况下才建议这样做