2017-10-12 4 views
0

Tout d'abord merci pour ce grand utilitaire "XMLUnit".Créer Excel après avoir trouvé des différences dans XML

J'ai une exigence où je veux comparer 2 XML et trouver les différences. Une fois les différences trouvées, je dois générer un rapport Excel qui affichera l'ensemble des données XML (données similaires et données différentes). Les similitudes et les différences de données seront mises en évidence dans cet Excel en utilisant une certaine couleur.

Exemple-

Première XML-

<Project> 
    <Policy> 
     <Amount>20</Amount> 
     <Balance>10</Balance> 
     <PolicyDetails> 
      <Amount>30</Amount> 
      <SendDate>2017-04-03</SendDate> 
     </PolicyDetails> 
     <PolicyDetails> 
      <Amount>100</Amount> 
      <SendDate>2017-04-02</SendDate> 
     </PolicyDetails> 
     <PolicyDetails> 
      <Amount>50</Amount> 
      <SendDate>2016-04-02</SendDate> 
     </PolicyDetails> 
    </Policy> 
</Project> 

Deuxième XML -

<Project> 
    <Policy> 
     <Amount>10</Amount> 
     <Balance>10</Balance> 
     <PolicyDetails> 
      <Amount>50</Amount> 
      <SendDate>2017-04-03</SendDate> 
     </PolicyDetails> 
     <PolicyDetails> 
      <Amount>100</Amount> 
      <SendDate>2017-05-05</SendDate> 
     </PolicyDetails> 
    </Policy> 
</Project> 

Maintenant, je dois trouver les similitudes et les différences de ces XML et de générer un fichier Excel qui affiche des données as-

enter image description here

Je sais que je peux lire le de XML en utilisant JAVA un par un et le faire, mais les années XML réels auront des combinaisons de données où la commande peut être différents, etc.

Ce que je l'ai fait Extrême- I J'ai utilisé XMLUnit 2 "DiffBuilder" et trouvé toutes les différences dans ces XML. J'ai même utilisé mon DifferenceEvaluator personnalisé pour une certaine logique personnalisée.

Je veux comprendre comment écrire les différences et les similitudes dans le format désiré dans Excel. Quelqu'un peut-il m'aider s'il vous plaît ici?

J'ai aussi pensé à implémenter ComparisonListener et à saisir toutes les similitudes et différences et commencer à écrire des données à partir d'ici dans Excel.

+0

C'est large, s'il vous plaît affiner à une question spécifique –

+0

@RC. Désolé pour le retard. J'utilise XMLUnit 2.0 et j'ai besoin d'aide pour les problèmes suivants: 1. Une fois XMLUnit me renvoie les différences, comment puis-je les lire et les insérer dans Excel. Les différences renvoyées par XMLUnit ne sont pas lisibles par l'homme. 2. Existe-t-il un moyen d'identifier les similitudes dans XML en utilisant XMLUnit 2.0 – Ankit

Répondre

0

J'ai fait quelque chose comme ça en transformant chaque xml en Map<String, String> où la clé de la carte est le xpath.

Par exemple, pour votre première XML je voudrais créer une carte comme:

{ 
    "Project[1]/Policy[1]/Amount[1]": "20", 
    "Project[1]/Policy[1]/Balance[1]": "10", 
    "Project[1]/Policy[1]/PolicyDetails[1]/Amount[1]": "30", 
    "Project[1]/Policy[1]/PolicyDetails[1]/SendDate[1]": "2017-04-03", 
    "Project[1]/Policy[1]/PolicyDetails[2]/Amount[1]": "100", 
    "Project[1]/Policy[1]/PolicyDetails[2]/SendDate[1]": "2017-04-02", 
    // etc 
} 

Vous pouvez ensuite comparer les deux cartes pour les entrées manquantes/différentes. Vous pouvez utiliser les xpaths pour fournir une interface utilisateur sympa en cliquant sur la cellule qui pointe vers l'emplacement dans le fichier XML.