2010-05-10 60 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); 

如何引用产生一些代码,我可以设想能够帮助更明确。