最快/最好的方式来读取XML

问题描述:

我需要阅读大量的潜在(〜300MB)的XML文件,并修改一些节点。基本上我需要:最快/最好的方式来读取XML

  • 从一开始读取XML
  • 每当我找到一个名为TRGT
  • 节点添加一些文字给它

什么是最好的方式,在C#中处理这个?我应该使用哪些XML类来查找和编辑我需要更改的节点?

TIA

VTD-XML是唯一的XML解析lib支持称为增量更新的功能。它也是高效的内存和高性能。但它需要你将它作为第三方库下载。

+0

令人印象深刻 - 这是我将要看的东西。谢谢! – 2011-03-16 21:31:02

+0

请确保您在答案中声明这是您自己的产品,以免将其视为垃圾邮件。 – ArtOfCode 2016-05-16 08:39:49

从我改造了一些非常大(2GB +)的XML文件(不要问!)我发现XSL转换是最快的经验 - 参与此类任务的高度优化的引擎,比较任何手动循环等你可能会尝试。

+0

你知道我认为你是对的。虽然XSLT可能会让一些人感到恐惧。 – ChaosPandion 2011-03-15 20:44:11

+2

公平的评论,虽然大多数转换都相对简单,你可以随时发布一个关于SO的问题! – 2011-03-15 20:51:47

+0

现在不是一个疯狂的想法? – ChaosPandion 2011-03-15 20:55:16

如果这是一个相当简单的操作类似于查找和替换,你可以尝试把它当作一个普通的文本文件,而不是一个XML文档。我想这可能比所有的XML解析更快。

可以使用Linq-to-XML。总之,用XDocument阅读,解析并添加数据与Linq。这不会是最快的代码,但可能是最快的代码。

如果你有内存的限制,您可能需要手动解析它(即加载在内存中只是其中的一部分,过程的一部分,取代它在文件中)