java - 如何使 javax Transformer 输出 HTML(无自闭标签)?

标签 java html xslt

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

我已经搜索并 found您可以将 xslt 输出更改为 html 而不是 xml 以避免自关闭标签的问题”,但那是针对不同的工具,我想知道: 我该怎么做 javax Transformer

最佳答案

看起来您正常创建转换器,然后使用 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();
  }
}

关于java - 如何使 javax Transformer 输出 HTML(无自闭标签)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5910963/

相关文章:

java - 生成字符串排列的复杂性

XSLT 与 XProc - 所需类型中的参数绑定(bind)

java - 是否有等效的 super 用于将方法调用重定向到包装类中的内部字段

java - 是否可以将 Lombok 的构建器公开?

html - 什么会影响 <div>...</div> 之外的文本位置?

html - 使用背景音频时,通用应用程序 (HTML5) 部署到 Windows Phone 失败

java - 如何在 java 中运行 saxon xslt 转换

html - XML/XSLT - XML 解析错误 : no element found

java - Android - 通用图像加载器中具有另一个 View 的 ImageView

javascript - 当对象因溢出而部分隐藏时,拖放会显示错误的重影图像