Sorry! I didn't mean it to be a jibe about not searching yourself, although I see it reads like that. I was actually trying to point out I wasn't providing a recommendation based on real use - the kind of thing you are right to expect from the monastery.
I looked at all because I know I'll shortly be needing a similar task. Please post what solution you end up with
BTW, on looking slightly further at XML::Test I see it uses XML::SematicDiff to do its comparisons. It is not testing if something is XML, but if two xml snippets are semantically equivalent. However its not really appropriate since a) its bulit as a Test module and b) its just using XML::SemanticDiff anyway.