Quale app Windows può ordinare un enorme file XML?


2

Ho degli enormi file di configurazione basati su XML, con 125000 linee al loro interno. Il problema è che sono generati automaticamente dal sistema che utilizzo, e i tag "figlio" sono in ordine casuale all'interno del rispettivo tag principale. Ciò significa che un confronto diff è impossibile.

Voglio ordinare ricorsivamente tutti i tag all'interno di un tag principale dal valore in name="". Alcuni tag principali vengono visualizzati solo una volta e non hanno un name="" parametro; questi dovrebbero essere ordinati dal tag nome stesso

Una volta che i file sono ordinati in questo modo, possono essere confrontati abbastanza facilmente utilizzando strumenti normali. Attualmente stiamo usando ExamXML che può corrispondere ai file XML non ordinati, ma non riesce perché i file sono troppo grandi.

Esiste un'applicazione in grado di farlo? (Windows è molto preferito; Linux solo come ultima risorsa)

Non voglio tuffarmi nei lavori di sviluppo o XSLT. Sto pensando che qualcuno abbia già creato un semplice strumento di ordinamento come questo, ma non riesco a trovarlo con Google.

Aggiornare:
Con l'aiuto di questo sito, ho creato un piccolo pacchetto che voglio condividere: XML-Sorter_v0.4public.zip

Aggiornare: Domanda di follow-up qui.

Risposte:


4

So che non vuoi immergerti nell'XSLT, ma è di gran lunga il modo più semplice per farlo. Tutto quello che serve è:

<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>

Non ho idea di XSLT, ma sembra che funzioni automaticamente attraverso i nomi dei tag, quindi non devo enumerarli. Questo è un GRANDE vantaggio rispetto ad altre soluzioni basate su XSLT che ho visto nelle mie ricerche! Dato il tuo esempio, posso prendere questo ed eseguirlo, o come dovrei adattarlo? Come fare In realtà, "eseguo" un XSLT? In un browser? (Noob XML che parla ...)
Torben Gundtofte-Bruun

Come correre: ho trovato questa domanda un po 'correlata ma non capisco davvero le risposte.
Torben Gundtofte-Bruun
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.