2016-05-06 5 views
0

Ich habe zwei Stücke von XML, wobei ein Teil davon ist:XMLUnit - Wie vergleicht man ein selbst schließendes Tag mit einem, das nicht ist?

<userActionRequiredCode>0</userActionRequiredCode> 

<userActionRequiredCode xsi:nil="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> 

Diese sind in verschiedenen Dateien, die ich XMLUnit mit bin im Vergleich.

Diese sind unterschiedlich, wie Sie sehen können, nicht gleich, nicht ähnlich. Welche Optionen kann ich für XMLUnit oder Diff Klasse oder überall einstellen, so dass ich diesen Unterschied berücksichtigen kann.

Derzeit wird dies nicht in der Liste der Unterschiede angezeigt.

Bearbeiten: Aktualisiertes Beispiel.

UPDATE: Das ursprüngliche Problem war nicht mit XMLUnit erkennen den Unterschied. Es war ein Fehler meinerseits. XMLUnit erkennt den Unterschied korrekt. Dieses spezielle Problem ist daher falsch, nicht nachvollziehbar.

+0

Ehh, was? '' und '' sind nicht das selbe Tag, also worüber redest du? – Andreas

+0

Entschuldigung, aktualisiert, um korrektes Beispiel wiederzugeben. – anuvab1911

+0

Ein Wert von '0' und ein Wert von Nothing (leere Zeichenfolge oder 'Nil') ist nicht derselbe Wert. Willst du damit sagen, dass XMLUnit sie für gleichberechtigt hält? – Andreas

Antwort

0

Eine einfache MCVE zeigt sie unterschiedlich zu sein, wenn Sie also keinen Unterschied feststellen, dann richten Sie XMLUnit nicht so ein.

final String control = "<userActionRequiredCode>0</userActionRequiredCode>"; 
final String test = "<userActionRequiredCode xsi:nil=\"1\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"/>"; 

Diff myDiff = DiffBuilder.compare(Input.fromString(control)) 
         .withTest(Input.fromString(test)) 
         .build(); 
System.out.println(myDiff.toString()); 

OUTPUT

Expected child nodelist length '1' but was '0' - comparing <userActionRequiredCode...> at /userActionRequiredCode[1] to <userActionRequiredCode...> at /userActionRequiredCode[1]