2012-08-16 20 views
11

Ich bin init Document Objekt wie folgt:Konvertieren von Document-Objekt byte []

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); 
Document doc = docBuilder.newDocument(); 

Danach habe ich eine XML-Datei bin der Aufbau von Daten auf das Dokument-Objekt einfügen.

Schließlich schreibe ich den Inhalt in eine Datei auf meinem Computer.

Meine Frage ist, wie der Inhalt von doc zu schreiben, um eine byte[] *

Dies ist, wie ich den Inhalt der XML-Datei schreiben:

TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
Transformer transformer = transformerFactory.newTransformer(); 
DOMSource source = new DOMSource(doc); 
StreamResult result = new StreamResult(new File("changeOut.xml")); 
// Output to console for testing 
// StreamResult result = new StreamResult(System.out); 
transformer.transform(source, result); 

Antwort

21

Pass Output statt Datei zum StreamResult Konstruktor.

ByteArrayOutputStream bos=new ByteArrayOutputStream(); 
StreamResult result=new StreamResult(bos); 
transformer.transform(source, result); 
byte []array=bos.toByteArray(); 
7

für mich Diese Arbeit:

public byte[] documentToByte(Document document) 
{ 
    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    org.apache.xml.security.utils.XMLUtils.outputDOM(document, baos, true); 
    return baos.toByteArray(); 
} 
+0

Haben Sie Abhängigkeits Details org.apache.xml.security.utils.XMLUtils.outputDOM haben? Ich habe nur Knoten Support-Class-Datei –