将XElement附加到xml文件而不保存整个文件。 C#

时间:2010-01-15 19:24:49

标签: c# xml

是否有可能在C#中将XElement附加到已存在的xml文件中,而不保存整个xml,只保存新元素?

所以我不想要这样的东西,因为它会将整个xml写入磁盘。

XDocument document = new XDocument();
document.Load("filename");
document.Root.add(new XElement("name", "content"));
document.save("filename");

提前感谢。

1 个答案:

答案 0 :(得分:2)

是的,但只能获得比你的例子更低的水平。

在XML文件中,您只能有一个根元素,因此,如果只是附加到文件中添加新元素,则会创建一个损坏的XML文件。

但是,您可以从文件的末尾读取并解析它以查找根元素的结束标记的开头(这将为您提供文件位置)。然后,您可以将文件作为FileStream打开以进行写入,将写入位置设置为root-end-tag的开头,然后将新元素正常写入流中。然后,您必须通过附加文本来“手动”完成文件,以添加新的根端标记。