Java xlst变换doens';t关闭标签

Java xlst变换doens';t关闭标签,java,html,xslt,pdf,itext,Java,Html,Xslt,Pdf,Itext,我正在使用xslt转换将xml文件转换为html文件: TransformerFactory factory = TransformerFactory.newInstance(); Source xslt = new StreamSource(new File("transform.xsl")); Transformer transformer = factory.newTransformer(xslt); Source text = new StreamSource(new File("te

我正在使用xslt转换将xml文件转换为html文件:

TransformerFactory factory = TransformerFactory.newInstance();
Source xslt = new StreamSource(new File("transform.xsl"));
Transformer transformer = factory.newTransformer(xslt);

Source text = new StreamSource(new File("test.xml"));
transformer.transform(text, new StreamResult(new File("output.html")));
当我这样做时,我得到一个html文件,可以用浏览器打开,但是当我试图用iText将html转换成pdf文件时,我得到一个例外,因为有些标记没有正确关闭。示例:

(而不是


我是否可以指示转换器始终关闭标记?

最可能的原因是您在样式表中使用HTML输出方法:

你应该使用

如果需要XML(XHTML)序列化


更多信息可以在这里的官方规范中找到:

显示
transform.xsl
文件。另外,请注意,您可能是隐式选择method=“html”,而不是显式选择:如果结果树的最外层元素是“html”,则这是默认值。