Comparer XML en ignorant l'ordre des éléments enfants
Quelqu'un sait d'un outil qui permettra de comparer deux documents XML. Relais de moquer... il y a plus. J'ai besoin de quelque chose qui fera en sorte que chaque nœud dans le fichier 1 est également dans le fichier 2 quel que soit l'ordre. J'ai pensé XML Spy serait-il le faire avec l'Ignorer Afin de Nœuds Enfants de l'option, mais il n'a pas. Les éléments suivants devraient être considérés de la même manière:
<Node>
<Child name="Alpha"/>
<Child name="Beta"/>
<Child name="Charlie"/>
</Node>
<Node>
<Child name="Beta"/>
<Child name="Charlie"/>
<Child name="Alpha"/>
</Node>
source d'informationauteur Andrew Garrison
Vous devez vous connecter pour publier un commentaire.
Vous pourriez google pour "XML outil de comparaison", qui vous donnera plus de résultats suffisants.
L'un d'eux est OxygenXml, un outil que j'utilise fréquemment. Vous pouvez aussi essayer de les Microsoft XML Diff et Patch Outil.
Bonne Chance.
J'ai écrit un simple python pour cela l'outil appelé
xmldiffs
:L'obtenir à https://github.com/joh/xmldiffs
J'utiliserais XMLUnit pour ce qu'elle peut accueillir éléments dans un ordre différent.
J'avais un besoin similaire ce soir, et je ne pouvais pas trouver quelque chose qui l'adapter à mes besoins.
Ma solution est de trier les deux fichiers XML, je voulais diff, le tri par ordre alphabétique par le nom de l'élément. Une fois qu'ils étaient tous les deux dans un ordre cohérent, je pourrais diff les deux fichiers triés à l'aide d'un visuel régulier outil de comparaison.
Si cette approche semble utile à quelqu'un d'autre, j'ai partagé le script python que j'ai écrit pour faire le tri à http://dalelane.co.uk/blog/?p=3225
Avec Au-Delà De Comparer vous pouvez utiliser dans la
File Formats
-les Paramètres de laXML Sort
de Conversion. Avec cette option, le XML childs est trié avant le diff.Un trail /version portable de Beyond Compare est disponible.
Comme un (très) rapide et sale, je l'ai fait dans un pincement:
En C1, entrez la formule:
En D1, entrez la forumula:
Qui mettra en évidence les lignes qui apparaissent dans un fichier mais pas dans l'autre fichier. Ce n'est pas bien rangé par un tronçon, mais parfois vous avez juste à travailler avec ce que vous avez.
Ici est un comparateur de solution à l'aide de SWI-Prolog
Prolog va unifier la variable de Nom pour correspondre à des nœuds à partir d'un fichier 1 et fichier 2.
L'unification sur la variable de Nœud de la "diff" de détection.
Voici un exemple de sortie ci-dessous: