什么是更新文件中xml的最佳方法?

时间:2016-03-13 17:52:51

标签: c# xml winforms .net-4.0

我一直在寻找更新文件中xml的最佳方法。我刚刚切换到使用XmlReader(来自XDocument方法)获得速度(不必读取内存中的整个文件)。

我的XmlReader方法工作正常,当我需要读取值时,它会打开xml,开始读取并且只读取所需的节点,然后关闭所有内容。它非常快速有效。

现在我已经开始工作了,我想制作一个UPDATES xml的方法。我想保持同样的想法,只在内存中读取所需内容。所以我的想法是,直到我改变的节点然后使用编写器来更新该值。

我看到的所有内容都有一个XmlReader读取,同时使用XmlWriter编写所有内容。如果我这样做,我会认为我必须让它像XDocument那样运行整个文件。以此为answer

是否可以只使用阅读器并阅读节点我尝试编辑然后更改innerxml或其他内容?

什么是更新文件中XML的最快最有效的方法?

  • 我想只读取我想要编辑的内容,而不是 整个文件。
  • 我还想考虑那些没有的节点 存在(需要添加)。

1 个答案:

答案 0 :(得分:2)

按照设计,XmlReader表示文档的“只读向前”视图,不能用于更新内容。使用LoadXmlDocumentXDocument的{​​{1}}方法仍然会将整个文件读入内存。 (引擎盖下,XElementXDocument仍然使用XElement。)但是,您可以使用原始XmlReaderXmlReader组合使用重载采用XElement的{​​{1}}方法。

您没有描述您的XML结构,但您希望执行与此类似的操作:

Load

要查找特定节点(例如,具有特定属性值),您需要执行与此类似的操作:

XmlReader