Que aplicativo do Windows pode classificar um arquivo XML enorme?

2

Eu tenho alguns arquivos enormes de configuração baseados em XML, com 125.000 linhas neles. O problema é que eles são gerados automaticamente pelo sistema que eu uso, e as tags "child" estão em uma ordem aleatória dentro da respectiva tag pai. Isso significa que uma comparação diff é impossível.

Eu quero ordenar de forma recursiva todas as tags em uma tag pai pelo valor em name="" . Algumas tags pai aparecem apenas uma vez e não têm um parâmetro name="" ; estes devem ser classificados pelo próprio nome tag .

Depois que os arquivos são classificados assim, eles podem ser comparados facilmente usando ferramentas normais. No momento, estamos usando o ExamXML , que pode corresponder a arquivos XML não classificados, mas falha porque os arquivos são muito grandes.

Existe um aplicativo que pode fazer isso? (Windows muito preferido; Linux apenas como um último recurso)

Eu não quero mergulhar em trabalhos de desenvolvimento ou XSLT. Estou pensando que alguém já deve ter feito uma ferramenta de classificação simples como essa - não consigo encontrá-lo usando o Google.

Atualização:
Com a ajuda deste site, criei um pequeno pacote que desejo compartilhar: XML-Sorter_v0.4public .zip

Atualização: Pergunta de acompanhamento aqui

    
por Torben Gundtofte-Bruun 08.11.2011 / 14:23

1 resposta

4

Eu sei que você não quer mergulhar no XSLT, mas é de longe a maneira mais fácil de fazê-lo. Tudo o que é preciso é:

<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>
    
por 08.11.2011 / 17:02