2012-08-16 49 views
11

我初始化文檔對象是這樣的:轉換文檔對象以字節[]

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

後,我通過插入數據到doc對象建立一個XML文件。

最後,我正在將內容寫入計算機上的文件。

我的問題是如何寫文檔的內容到一個byte[] *

這是我寫的內容的XML文件:在這裏你有

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); 

回答

21

的OutputStream而不是文件StreamResult構造。

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

這項工作對我來說:

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

你有org.apache.xml.security.utils.XMLUtils.outputDOM的依賴關係的細節?我只有節點支持類文件 – 2018-02-12 06:25:14