2010-05-10 120 views
-1

我試圖輸出一個包含如下元素的DOM:& nbsp;到一個html文件,但它會顯示& amp; nbsp;在輸出中,這顯然是不可取的。我的代碼如下用DOM輸出DOM到HTML

Transformer transformer = TransformerFactory.newInstance().newTransformer(); 
    transformer.setOutputProperty(OutputKeys.METHOD, "html"); 
    Result result = new StreamResult(output); 
    transformer.transform(new DOMSource(document), result); 

反正是有得到它只是輸出& NBSP; (並且沒有,替換& nbsp;在輸入不是一個選項)?

+0

不太瞭解Transform類,但也許它有禁用輸出轉義選項? – Oded 2010-05-10 16:58:27

+0

您的輸入是XML文檔嗎?如果是的話,它怎麼能包含「 」?它應該是#160;代替? – 2010-05-10 18:04:18

+0

輸入不是XML,它是網上找到的HTML,因此它(不幸)包含  – Darioush 2010-06-06 14:02:25

回答

0

要使HTML成爲有效的XML,包括& nbsp;該文檔應該具有定義 實體的DOCTYPE。

添加類似的東西

<!DOCTYPE document SYSTEM "document.dtd" [ 
<!ENTITY nbsp "&#160;"> 
]> 

的文檔可能做到這一點的開始。但是這可能需要對實際的源文檔進行,或者將其前置到用於將其解析到DOM中的流中。

如果您發佈顯示在文檔中的行

transformer.transform(new DOMSource(document), result); 

如何引用產生一些代碼,我可以設想能夠幫助更明確。