是否有可能在C#中将XElement附加到已存在的xml文件中,而不保存整个xml,只保存新元素?
所以我不想要这样的东西,因为它会将整个xml写入磁盘。
XDocument document = new XDocument();
document.Load("filename");
document.Root.add(new XElement("name", "content"));
document.save("filename");
提前感谢。
答案 0 :(得分:2)
是的,但只能获得比你的例子更低的水平。
在XML文件中,您只能有一个根元素,因此,如果只是附加到文件中添加新元素,则会创建一个损坏的XML文件。
但是,您可以从文件的末尾读取并解析它以查找根元素的结束标记的开头(这将为您提供文件位置)。然后,您可以将文件作为FileStream打开以进行写入,将写入位置设置为root-end-tag的开头,然后将新元素正常写入流中。然后,您必须通过附加文本来“手动”完成文件,以添加新的根端标记。