2009-06-22 3 views
1

Je viens d'écrire la classe stupide pour éviter d'aller fou suivant:Sortie XML en Java - quoi de neuf avec DOMImplementationLS?

import java.io.OutputStream; 

import org.w3c.dom.Document; 
import org.w3c.dom.bootstrap.DOMImplementationRegistry; 
import org.w3c.dom.ls.DOMImplementationLS; 
import org.w3c.dom.ls.LSOutput; 
import org.w3c.dom.ls.LSSerializer; 

public final class XMLSerializer { 
    public static final void writeDocument(Document input, OutputStream output) { 
     try { 
      DOMImplementationLS ls = 
       (DOMImplementationLS) DOMImplementationRegistry 
       .newInstance().getDOMImplementation("LS"); 
      LSSerializer ser = ls.createLSSerializer(); 
      LSOutput out = ls.createLSOutput(); 
      out.setByteStream(output); 
      ser.write(input, out); 
     } catch (Exception e) { // DIAF Java 
      throw new RuntimeException(e); 
     } 
    } 
} 

Est-ce que cette méthode pratique existe déjà en Java ou une bibliothèque commune? Cela semble ridiculement long, et c'est même la version où toutes les exceptions sont effondrées sous un "catch (Exception e)".

Répondre

1

Essayez ceci:

DOMSource domSource = new DOMSource(input); 
StreamResult resultStream = new StreamResult(output); 
TransformerFactory transformFactory = TransformerFactory.newInstance(); 
try { 
    serializer.transform(domSource, resultStream); 
} catch (javax.xml.transform.TransformerException e) { 
}