【发布时间】:2011-03-16 10:42:08
【问题描述】:
我需要读取可能很大 (~300mb) 的 XML 文件,并编辑一些节点。基本上我需要:
- 从头开始读取 XML
- 每当我找到一个名为 trgt 的节点时
- 添加一些文本
在 C# 中处理此问题的最佳方法是什么?我应该使用哪些 XML 类来查找和编辑需要更改的节点?
TIA
【问题讨论】:
我需要读取可能很大 (~300mb) 的 XML 文件,并编辑一些节点。基本上我需要:
在 C# 中处理此问题的最佳方法是什么?我应该使用哪些 XML 类来查找和编辑需要更改的节点?
TIA
【问题讨论】:
VTD-XML 是唯一支持增量更新功能的 XML 解析库。它还具有内存效率和高性能。但它需要您将其作为第三方库下载。
【讨论】:
根据我转换一些非常大 (2GB+) xml 文件的经验(不要问!)我发现 xsl 转换是最快的 - 与任何手动循环等相比,所涉及的引擎针对此类任务进行了大量优化试试看。
【讨论】:
您可以使用Linq-to-XML。简而言之,使用XDocument 读取,使用Linq 解析和添加数据。这不会是最快的代码,但可能是最快的编写代码。
如果您有内存限制,您可能必须手动解析它(即仅将部分加载到内存中,处理该部分,在文件中替换它)
【讨论】:
如果这是一个类似于查找和替换的相当简单的操作,您可以尝试将其视为普通文本文件而不是 xml 文档。我想这可能比所有的 xml 解析都要快。
【讨论】: