2012-04-12 151 views
0

我使用的follwing代碼更改的XML文檔:
轉換XML文檔爲String

DocumentBuilderFactory fty1 = DocumentBuilderFactory.newInstance(); 
    fty1.setNamespaceAware(true); 
    DocumentBuilder builder1 = fty1.newDocumentBuilder(); 
    ByteArrayInputStream bais1 = new ByteArrayInputStream(tr1.getBytes());//tr1=xml string 
    Document xmldoc1=builder1.parse(bais1); 
    xmldoc1.getElementsByTagName("userID").item(0).setTextContent("123123132"); 


的xmldoc1包含改變形式。現在如何將它轉換爲一個字符串,以便新的對話可以傳遞給其他對象。

回答

4
Transformer transformer = TransformerFactory.newInstance().newTransformer(); 
transformer.setOutputProperty(OutputKeys.INDENT, "yes");   
StringWriter sw = new StringWriter(); 
StreamResult result = new StreamResult(sw); 
DOMSource source = new DOMSource(xmldoc1); 
transformer.transform(source, result); 
String xmlString = sw.toString(); 
+0

Khm ...這就是XSLT代碼:)如果你包含初始化'trans'的行,它會更加明顯。這傢伙真的應該爲自己谷歌。例如[this here here](http://www.java-tips.org/java-se-tips/org.w3c.dom/saving-a-dom-tree-to-xml-file-javax.xml。解析器5.html)真的不難找到。 – 2012-04-12 10:14:15

+0

現在我添加了:)。 – Phani 2012-04-12 10:15:12

+0

@Phani:謝謝。但是有一點區別。在新的xml字符串中,其內容已被設置的元素正在換行。這可能會創建一個不同的簽名(我使用XML簽名)。這是爲什麼發生? – Ashwin 2012-04-12 10:33:42