2010-03-25 7 views
1

J'ai des données XML générées par un outil que je veux comparer à des données créées précédemment par le même outil. Le problème est que l'outil peut réorganiser les éléments dans les données XML et j'ai donc besoin d'un moyen de dire à l'outil diff de baser sa correspondance sur un ou plusieurs attributs des éléments. J'ai accès à Beyond Compare 2 mais je n'ai pas réussi à configurer une règle qui le fasse. J'ai envisagé de faire une sorte de transformation XML pour trier les éléments avant de donner les données à l'outil de comparaison mais cela ne me semble pas être une bonne solution.Diff XML correspondant à un attribut spécifique

Donc, ma question est de savoir si quelqu'un peut donner des conseils d'un outil qui peut effectuer le diff ou un bon moyen de trier les données de sorte qu'il devient approprié pour une utilisation avec Beycond Comparer? Voici un petit exemple de données XML.

<document Model="Model 1" UUID="e795782b-6be0-4c4a-9a23-217a96fef230"> 
    <Target Name="Example target" UUID="bed4836e-1868-4997-9537-d98a182e7311" > 
     <Thread Name="Thread 1" UUID="199e8627-db04-4e7c-9643-bb4eeb2faf11"></Thread>  
     <Thread Name="Thread 2" UUID="366c9fe5-790a-44fd-bbae-e91fa2faeaaf"></Thread> 
     <Mutex Name="Mutex 1" UUID="23423434-324a-2344-2343-423423423423"></Mutex> 
     <Mutex Name="Mutex 2" UUID="230d2068-2367-7955-4567-345902904590"></Mutex> 
    </Target> 
</document> 

Répondre

1

Si vous utilisez Java une belle astuce serait d'utiliser XMLUnit ils ont un objet appelé xmldiff ...

+0

J'ai eu un coup d'œil à xmlunit et il semblait être en mesure de faire ce que je veux. J'ai également trouvé un outil appelé ExamXML (pas freeware) que j'évalue en ce moment. –