我有两个大型XML文件(3GB,80000条记录)。其中一个是另一个的更新版本。我想确定哪些记录发生了变化(已添加/已更新/已删除)。文件中有一些时间戳,但我不确定它们是否可信。在文件内部,记录的顺序也是如此。
这些文件太大,无法作为XML加载到内存中(即使只有一个,更别说两个了)。
我的思路是,在内存中使用ID映射表对第一个文件中的记录级内容做某种解析/索引,并使用随机访问流来比较同时存在于两个文件中的那些记录。这可能需要2或3次通过才能完成,但这没关系。但我找不到易于使用的库或方法来实现这一点。具有VTDNavHuge的vtd-xml看起来很有趣,但我无法从文档中理解它是否支持基于预先保存的位置的随机访问重访和记录的加载。
Java库/解决方案优先考虑,但C#也可以接受。
这些文件太大,无法作为XML加载到内存中(即使只有一个,更别说两个了)。
我的思路是,在内存中使用ID映射表对第一个文件中的记录级内容做某种解析/索引,并使用随机访问流来比较同时存在于两个文件中的那些记录。这可能需要2或3次通过才能完成,但这没关系。但我找不到易于使用的库或方法来实现这一点。具有VTDNavHuge的vtd-xml看起来很有趣,但我无法从文档中理解它是否支持基于预先保存的位置的随机访问重访和记录的加载。
Java库/解决方案优先考虑,但C#也可以接受。