对巨大的XML文件进行排序

对巨大的XML文件进行排序,xml,xslt,external-sorting,Xml,Xslt,External Sorting,我有两个巨大的XML文件(每个文件4-5GB)。XML格式如下: <root> <item> <id/> <elements/> <elements/> <elements/> </item> </root> 我需要计算是否添加或修改了更多的!为此,我计划对这两个文件进行排序,然后从那里开始。为了分类,我考虑了以下两种方法 将XML文件转换为其他格式并执行

我有两个巨大的XML文件(每个文件4-5GB)。XML格式如下:

<root>
  <item>
    <id/>
    <elements/>
    <elements/>
    <elements/>
  </item>
</root>

我需要计算是否添加或修改了更多的
!为此,我计划对这两个文件进行排序,然后从那里开始。为了分类,我考虑了以下两种方法

  • 将XML文件转换为其他格式并执行外部排序

  • 使用XSLT排序:我不确定是否可以对如此大的文件进行排序

  • 我想知道这两种方法中哪一种是可行的

    或者是否有更好的方法来解决这个问题


    编辑:我无法在磁盘上加载整个文件,所以不能使用“diff”或“bdiff”。

    好问题!我自己也在寻找答案!如果您有一个64位操作系统和一台内存为12GB或更大的计算机,那么使用XSLT排序可能会起作用。@Martin Honnen没有。我需要让它也适用于较低的硬件规格。否则我就可以在linux上使用“diff”。您能详细介绍一下其他可以达到此目的的方法吗?我不熟悉XML数据库,但从理论上讲,您应该能够将文件插入XML数据库,然后使用XQuery甚至XSLT对其进行查询和排序(只要像MarkLogic这样的数据库除了XQuery之外还提供XSLT)。