Никогда не видел, чтобы он становился пустым.Для JAVA6 (также совместимого с 1.5) у меня работает следующий код, похоже, разница в используемом TransformerFactory.
private DocumentBuilderFactory factory;
private DocumentBuilder builder;
private Transformer xformer;
//presetup - needs to be done just once
factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
builder = factory.newDocumentBuilder();
xformer = TransformerFactory.newInstance().newTransformer();
//Transform the file
Source source = new DOMSource(doc);
String oFileName = "output.xml";
File oFile = new File(outputDirectory + "/" + oFileName);
Result result = new StreamResult(oFile);
xformer.transform(source, result);
Исправляет ли это вашу проблему?