哪个 Windows 应用程序可以对巨大的 XML 文件进行排序?

哪个 Windows 应用程序可以对巨大的 XML 文件进行排序?

我有一些非常庞大的 XML 配置文件,其中有 125000 行。问题是它们是由我使用的系统自动生成的,并且“子”标签在它们各自的父标签中的顺序是随机的。这意味着无法进行 diff 比较。

我想递归地对父标签内的所有标签进行排序按中的值排序name=""。有些父标签只出现一次,没有参数name="";这些应该按名称本身排序tag

一旦文件按此排序,就可以使用常规工具轻松进行比较。我们目前正在使用考试XML它可以匹配未排序的 XML 文件,但是由于文件太大而失败。

是否有应用程序可以做到这一点?(最好是 Windows;Linux仅作为最后的手段)

我不想深入开发或 XSLT 工作。我想一定有人已经制作了类似的简单排序工具 - 我只是无法使用 Google 找到它。

更新:
在此网站的帮助下,我创建了一个想要分享的小包:XML-Sorter_v0.4public.zip

更新: 此处有后续问题。

答案1

我知道您不想深入研究 XSLT,但这是迄今为止最简单的方法。只需:

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="*">
  <xsl:copy>
    <xsl:copy-of select="@*"/>
    <xsl:apply-templates>
      <xsl:sort select="(@name, name())[1]"/>
    </xsl:apply-templates>
  </xsl:copy>
</xsl:template>
</xsl:stylesheet>

相关内容