使用doctype将java转换为html

使用doctype将java转换为html,java,html,Java,Html,我试图从java transformer创建一个HTML5输出。我有 DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); Document doc = docBuilder.newDocument(); Element html= doc.createElement("htm

我试图从java transformer创建一个HTML5输出。我有

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();

Document doc = docBuilder.newDocument();

Element html= doc.createElement("html");
.... //populate the html element

TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();

DOMSource domSource = new DOMSource(html);
StreamResult result = new StreamResult(new File(fileLocation));
transformer.setOutputProperty(OutputKeys.METHOD, "html");
transformer.transform(domSource, result);
这非常有效,可以根据需要为我创建html文件。但它没有在顶部,我不知道如何得到它。查看transformer上的文档,我只看到如何打开或关闭头部的xml版本

正如您在我的代码中所看到的,我尝试将output keys方法设置为html,并尝试实现建议的内容,但生成的html文件仍然没有doc type行


我考虑过的另一个选择是创建doctype元素,但我不知道如何将它与我的html元素相关联

在第5行添加类似的内容:

DOMImplementation domImpl = doc.getImplementation();
DocumentType doctype = domImpl.createDocumentType("");
doc.appendChild(doctype);

这将添加空的DocType(通常与HTML5一起使用)。

Java附带的XSLT 1.0转换引擎的html输出比HTML5早了十多年。我担心这样的事情不会使它变得不可能,只是更困难,而且很可能依赖于实现。找到了重复项。我觉得最好。谢谢你@Thorbjørnravandersen。以后看到这个的人。我试图在上面的代码中运行xslt,但因为它还没有作为文档存在,所以它所做的只是从输出中删除所有标记。我最终导入了在上述代码末尾创建的文档,并基本上再次通过上述代码将其传递给newTransformer(xslt);