gpt4 book ai didi

c# - C# 中将具有相同架构的 2 个以上 xml 文件合并在一起的最有效方法是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 01:51:15 26 4
gpt4 key购买 nike

我有几个相当大的 XML 文件,它们表示从一个系统导出的数据,供第 3 方供应商使用。我将每个 XML 文件的结果截断为 2,500 条记录,因为否则文件会变得庞大且难以管理。但是,第 3 方供应商要求我将所有这些 XML 文件合并到一个文件中。这些 XML 文件有 78 个,总大小超过 700MB!疯了,我知道...那么您将如何组合这些文件以适应使用 C# 的供应商?希望有一种真正有效的方法可以做到这一点,而无需使用 LINQ 一次读取所有文件:-)

最佳答案

我将在这里冒险并假设您的 xml 看起来像这样:

<records>
<record>
<dataPoint1/>
<dataPoint2/>
</record>
</records>

如果是这样的话,我会打开一个文件流并写入 <records>部分,然后依次打开每个 XML 文件并将所有行(第一行和最后一行除外)写入磁盘。这样您就不会在内存中拥有大量字符串,而且编码和运行都应该非常非常快。

public void ConsolidateFiles(List<String> files, string outputFile)
{
var output = new StreamWriter(File.Open(outputFile, FileMode.Create));
output.WriteLine("<records>");
foreach (var file in files)
{
var input = new StreamReader(File.Open(file, FileMode.Open));
string line;
while (!input.EndOfStream)
{
line = input.ReadLine();
if (!line.Contains("<records>") &&
!line.Contains("</records>"))
{
output.Write(line);
}
}
}
output.WriteLine("</records>");
}

关于c# - C# 中将具有相同架构的 2 个以上 xml 文件合并在一起的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1405678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com