簡體   English   中英

如何使javax Transformer輸出HTML(沒有自動關閉標簽)?

[英]How to make javax Transformer output HTML (no self-closing tags)?

我正在使用javax.xml.transform.Transformer將XML文件轉換為HTML文件。 可能會發生div沒有內容,導致Transformer輸出<div/> ,這會破壞渲染。

我搜索並發現你可以將xslt輸出更改為html而不是xml以避免自閉標簽的問題 ”,但那是針對不同的工具而我想知道: 我怎么做到這一點 javax Transformer

看起來你正常創建變換器,然后使用Transformer.setOutputPropertyMETHOD屬性設置為"html"

使用XSLT輸出有效HTML的方法是使用<xsl:output>指令,並將其method屬性設置為html

這是一個小例子:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="html"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="/">
     <div>
       <xsl:apply-templates select="x/y/z"/>
     </div>
 </xsl:template>

</xsl:stylesheet>

當此轉換應用於以下XML文檔時

<t/>

產生了想要的結果 (我正在使用的8個不同的XSLT處理器產生相同的結果):

<div></div>

如果不需要的輸出只發生在特定的XSLT處理器上,那么這是這個特定處理器的實現問題,而且是“xsltprocessors”而不是“xslt”問題。

另一個帖子中的這個答案在我的案例中似乎不起作用; 即使我指定<xsl:output method="html"...>它仍然生成<div/>而不是<div></div>

我不知道我的IDE或編譯器是否壞了(IBM Rational Application Developer),但我正在使用檢測空白節點並在其中插入單個空格的解決方法。 不太干凈但有效......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM