如何使javax Transformer输出HTML(无自结束标签)?

Kla*_*nDK 4 html java xslt

我正在使用 ajavax.xml.transform.Transformer将 XML 文件转换为 HTML 文件。可能会发生 adiv没有内容,这会导致 Transformer 输出<div/>,从而破坏渲染。

我搜索并发现您可以将 xslt 输出更改为 html而不是 xml,以避免自闭合标签的问题”,但那是针对不同的工具,我想知道:我该如何使用javax Transformer

Ste*_*n C 5

看起来您像平常一样创建了变压器,然后使用Transformer.setOutputProperty将METHOD属性设置为"html"


例如:

private static final DocumentBuilderFactory sDocumentFactory;
private static DocumentBuilder sDocumentBuilder;
private static DOMImplementation sDomImplementation;

private static final TransformerFactory sTransformerFactory =
  TransformerFactory.newInstance();
private static Transformer sTransformer;

static {
  sDocumentFactory = DocumentBuilderFactory.newInstance();

  sDocumentFactory.setNamespaceAware( true );
  sDocumentFactory.setIgnoringComments( true );
  sDocumentFactory.setIgnoringElementContentWhitespace( true );

  try {
    sDocumentBuilder = sDocumentFactory.newDocumentBuilder();
    sDomImplementation = sDocumentBuilder.getDOMImplementation();
    sTransformer = sTransformerFactory.newTransformer();

    sTransformer.setOutputProperty( OMIT_XML_DECLARATION, "yes" );
    sTransformer.setOutputProperty( INDENT, "no" );
    sTransformer.setOutputProperty( METHOD, "html" );
  } catch( final Exception ex ) {
    ex.printStackTrace();
  }
}
Run Code Online (Sandbox Code Playgroud)