【问题标题】:Appending an XElement to an xml file without saving the whole file. C#将 XElement 附加到 xml 文件而不保存整个文件。 C#
【发布时间】:2010-01-16 03:31:37
【问题描述】:

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

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

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

提前致谢。

【问题讨论】:

  • 您到底要保存什么?
  • 我想将 XElement 附加到 xml 文件中。就像杰森威廉姆斯在下一篇文章中写的那样:)

标签: c# xml


【解决方案1】:

是的,但只能比你的例子低一点。

在一个 XML 文件中,你只能有一个根元素,所以如果你只是在文件中追加一个新元素,你将创建一个损坏的 XML 文件。

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

【讨论】:

  • 我明白了,所以这是我要求的唯一方法?没有更简单的(1 个魔术调用)可以做到吗?
  • 如果您想避免重写整个文件,请不要这样做。 (可能某处有一个奇怪的 .net 东西可以让你做这样的事情,但极不可能)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-19
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多