Olá Mario.
Quer converter a entrada em saída diretamente sem fazer nenhuma transformação?
A maneira como sempre fiz foi carregar primeiro o documento de entrada:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(inputStream);
Depois de carregar o documento, você pode analisar seu conteúdo com a API DOM.
Finalmente, você cria o documento transformado e o retorna através de outputstream:
Document resultDoc = builder.newDocument();
...
...
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(resultDoc);
StreamResult result = new StreamResult(outputStream);
transformer.transform(source, result);
Se quiser converter a entrada em saída, pode usar:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(inputStream);
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(outputStream);
transformer.transform(source, result);
Neste ponto, acredito que terá a entrada convertida na saída.
Saudações,
Gari.