2010-10-15 14 views
9

J'essaie de voir si je pourrais utiliser XMLUnit pour comparer les deux XML différents suivants. J'ai utilisé la classe Diff pour comparer les deux XML suivants et vérifier les résultats similaires faux.XMLUnit - Comparer deux XML ignorant l'ordre des enfants

XML One 
<Required> 
    <Question desc="Are you single?"> 
     <Answers> 
     <Answer value="Yes"/> 
     <Answer value="No"/> 
     </Answers> 
    </Question> 
</Required> 

XML Two 
<Required> 
    <Question desc="Are you single?"> 
     <Answers> 
     <Answer value="No"/> ''Order is reversed in XML two 
     <Answer value="Yes"/> 
     </Answers> 
    </Question> 
</Required> 

Voici mon code JAVA:

Diff xmlDiff; 
try { 
    xmlDiff = new Diff(xmlOne, xmlTwo); 
    xmlDiff.overrideElementQualifier(new RecursiveElementNameAndTextQualifier()); 
} catch (Exception e) { } 
boolean isEqual = xmlDiff.similar() 

Répondre

2

xmlDiff.similar devrait faire l'affaire, mais je l'ai fait l'expérience que cela ne fonctionne pas toujours. Ma solution de contournement consistait à trier les éléments avant la comparaison.

Notez que c'est souvent une bonne idée de construire dans votre application pour avoir un ordre bien défini dans votre sortie, car cela rend le test automatique beaucoup plus facile.