private void writeManifest ( File manifestFile , Document doc ) throws IOException , TransformerException { TransformerFactory xfactory = TransformerFactory . newInstance ( ) ; Transformer xformer = xfactory . newTransformer ( ) ; xformer . setOutputProperty ( OutputKeys . OMIT_XML_DECLARATION , "yes" ) ; Source source = new DOMSource ( doc ) ; OutputStreamWriter writer = null ; try { manifestFile . getParentFile ( ) . mkdirs ( ) ; String encoding = doc . getXmlEncoding ( ) != null ? doc . getXmlEncoding ( ) : "UTF-8" ; writer = new OutputStreamWriter ( new FileOutputStream ( manifestFile , false ) , encoding ) ; if ( doc . getXmlEncoding ( ) != null && doc . getXmlVersion ( ) != null ) { String xmldecl = String . format ( "<?xml version=\"%s\" encoding=\"%s\"?>%n" , doc . getXmlVersion ( ) , doc . getXmlEncoding ( ) ) ; writer . write ( xmldecl ) ; } Result result = new StreamResult ( writer ) ; xformer . transform ( source , result ) ; } finally { IOUtils . closeQuietly ( writer ) ; } }
Write manifest using JAXP transformer