2012-02-01 108 views
0

如何按照字母顺序排列数GB的xml文件中的所有标签,所有相同的标签也应该按属性排序? 在相关问题中建议的所有方法都无法处理这些大数据。对multigigabyte xml文件进行排序

我正在寻找适用于Windows或Linux的现有工具。

+1

你有访问,你可以导入XML到数据库服务器?这种详细的数据交换格式对于如此大量的数据可能是不利的。 – Treborbob 2012-02-01 12:18:27

+4

在XML文件中定义:“*排列所有元素*”。 – 2012-02-01 12:18:57

+0

也许将它分成卡盘,对它们内部的元素进行排序,然后将块合并成一个巨大的xml文档? – user1096188 2012-02-01 12:23:22

回答

0

由于最初的目标是能够比较非常大的xmls包含类似的数据,但以不同的顺序,我最终将逻辑块拆分xml(每个xml包含数以千计的处理文档,并且它被拆分,因此每个文档与csplit实用程序分开放入文件),然后比较两个xml的每个同等大小的文档(幸运的是,在一个xml中没有大小相同的文档)。

不完美的解决方案,但它的工作withing合理的时间和空间的限制

0

如果您使用的是XSLT来进行排序,您可以使用XSLT的流安全的子集与像撒克逊启用流处理器。撒克逊流模式可以轻松管理千兆字节的输入XML数据。

撒克逊网站有关于streaming XSLT templates的非常详细的文档。

+0

我还没有使用XLST进行排序。你能指点一下吗? – 2012-02-01 14:01:45

+0

凯的博客包含许多有用的资源:http://saxonica.blogharbor.com/blog?cmd=search&keywords=streaming – gioele 2012-02-01 14:09:05

+0

看起来像这不会帮助 - 看着你原来的回应提供的文章 - **排序(流模式不支持xsl:sort),分组(xsl:for-each-group)和编号(xsl:number)** – 2012-02-01 14:14:11