I have 2 xml files:
The problem is in attributes prefixes.
<element xmlns:prefix1="namespace" prefix1:attribute="some value">Some text</element>
<element xmlns:prefix2="namespace" prefix2:attribute="some value">Some text</element>
these two xml are the same, with the same namespace, but with different prefixes. If I compare with xmlunit -> assertion fails. How can I handle it?
in case of similar() or identical() comparison I have error:
Expected attribute name 'message:MessageNameString' but was 'null'
Expected attribute name 'message:MessageVersion' but was 'null'
Expected attribute name 'null' but was 'mes:MessageNameString'
Expected attribute name 'null' but was 'mes:MessageVersion'
The following test passes the "similar" check but fails the "identical" check:
String control = "<prefix1:element xmlns:prefix1=\"namespace\" prefix1:attribute=\"x\">Some text</prefix1:element>";
String test = "<prefix2:element xmlns:prefix2=\"namespace\" prefix2:attribute=\"x\">Some text</prefix2:element>";
try
{
Diff diff = XMLUnit.compareXML( control, test );
assertTrue( "Similar", diff.similar() );
assertTrue( "Identical", diff.identical() );
}
catch ( Exception e )
{
fail( e.getMessage() );
}
From the xmlunit API docs:
So using the "similar" check should give you what you want.
Edit: added prefixed attributes, same result.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With