2014-11-24 88 views
0

我試圖XML字符串存儲在XML文件中按以下方式存儲XML字符串

String appData = "<Data><element><displayname>John</displayname></element></Data>"; 


org.w3c.dom.Element appData= doc.createElement("appData"); 
rootElement.appendChild(appData); 
org.w3c.dom.Element appXmlData= doc.createElement("myData"); 
appData.appendChild(appXmlData); 
appXmlData.setTextContent(appData); 

TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
Transformer transformer = transformerFactory.newTransformer(); 
DOMSource source = new DOMSource(doc); 
StreamResult result = new StreamResult(new File(path1)); 
transformer.transform(source, result); 

的數據存儲在XML作爲

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<appData> 
<myData> 
     &lt;Data&gt;&lt;element&gt;&lt;displayname&gt;John&lt;/displayname&gt;&lt;/element&gt;&lt;/Data&gt; 
</myData> 

什麼我想要的是

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<appData> 
<myData> 
    <Data><element><displayname>John</displayname></element></Data> 
</myData> 

幫我實現這個

+1

您不能像「<" ">」是XML的特殊關鍵字一樣,它們不能出現在它的內容中。相反,它們分別替換爲<和>。任何包含「<" ">」的XML在任何內容中的值都不會是正確的XML,並且將無法驗證 – MihaiC 2014-11-24 13:31:49

+0

請閱讀更多信息:http://xml.silmaril.ie/specials.html – MihaiC 2014-11-24 13:33:02

+0

您可以使用CDATA並添加您的字符串在'myData'裏面只有它會保留'<' & '>'符號。 – OO7 2014-11-24 13:34:12

回答

0

像你這樣一個

org.w3c.dom.Element appXmlData= doc.createElement("myData"); 

你必須爲你的其他節點創建的子元素:

org.w3c.dom.Element dataNode= doc.createElement("Data"); 
appXmlData.appendChild(dataNode); 

等等......既然你正在使用dom api,它會轉義您節點中的xml內容。

+0

是的,我可以這樣做。但事情是我有一個很大的XML字符串,這使我尋找替代品 – Saha 2014-11-24 13:47:36