I know this is an old question, but I'll post my solution after a whole morning googling. The answer is to provide dummy root node (start and termination tags). In order to accomplish this, one of your best friends is SequenceInputStream:
My code is the following:
reader = new XppDriver().createReader(new SequenceInputStream(
Collections.enumeration(Arrays.asList(
new InputStream[] {
new ByteArrayInputStream("<PlatformAuditEvents>".getBytes()),
new FileInputStream(file),
new ByteArrayInputStream("</PlatformAuditEvents>".getBytes())
}))
));
in = xstream.createObjectInputStream(reader);
Here I've mixed three InputStream objects, being the first and third ones those providing the required tags missing in the file processed.
This solution was inspired by this SO Question. Hope this helps someone.