我得到了與XML創建使用標準的Java對象一個相當嚴重的問題,我的代碼如下:XML創建轉換CR在HTML實體
//Generate DOM
DOMSource source = this.generateDomDocument(params...);
//WRITE XML FILE
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
//Properties
transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, STRING_FIELD_DTD);
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
//Convert and write to disk
transformer.transform(source, new StreamResult(
new OutputStreamWriter(new FileOutputStream(fileName), "UTF-8")));
問題是,變壓器改造回車返回在
實體,我不應該在生成的XML中。這是一個例子,我有寫在幾種不同的語言的翻譯(這就是爲什麼我用UTF-8)的結果文件,它們都是一樣的,當它們包含CarriageReturns於文:
<content langID="EN">
<desc> Test string
do not copy.</desc>
要清除的東西起來,這是我所期望的XML:
<content langID="EN">
<desc> Test string
do not copy.</desc>
我擡頭一看這個問題對谷歌和這裏也有,但似乎沒有解決方案或替代方法。
我不確定,我正確理解問題:輸入數據包含CR,並且XML輸出應該a)不包含它們?或者b)簡單地在那裏換行?或c)...? –
輸入數據包含CR,XML輸出應該只是有一個換行符,而不是像 然後是CRLF。我用Notepad ++檢查了XML代碼,這就是我發現的。 – OverLex