0
我需要按照给定的标签顺序重新排列大型XML文档(大小> 50 GB)。重新安排大型XML文档
例如: order [] = {o3,o2,o1};
Inputfile中:
<objects>
<o1>
// Some Data
</o1>
<o2>
// Some Data
</o2>
<o3>
// Some Data
</o3>
</objects>
OUTPUTFILE:
<objects>
<o3>
// Some Data
</o3>
<o2>
// Some Data
</o2>
<o1>
// Some Data
</o1>
</objects>
我的方法: 我从开始读取的文件,直到我遇到的对象标签的话,我创建临时文件的标签O1,O2,O3并做到这一点,直到我到达文件的结尾。现在使用该命令创建一个新文件。我用C++ ifstream,ofstream来执行上述任务;
这种方法需要6小时才能完成以下任务。 函数原型是:void重新排列(string tag,string inputfile); 50GB文件中的对象数大于12000000. 任何人都可以为我提供另一种提高性能的方法吗?
在此先感谢。
现在它采取你的方法3小时。但我想进一步提高性能,还有其他方法吗? 谢谢。 – 2012-02-16 11:39:59