XSL到HTML:当内部为空时,如何保留结束div标记?
我对XSL转换有问题。我有一个divtag,它有时包含一些数据,有时是空的。每当它为空且没有子项时,我会得到这种格式:XSL到HTML:当内部为空时,如何保留结束div标记?,html,xslt,Html,Xslt,我对XSL转换有问题。我有一个divtag,它有时包含一些数据,有时是空的。每当它为空且没有子项时,我会得到这种格式: <div class="test" style="display:none" /> 但我需要用这种格式: <div class="test" style="display:none"></div> XSL模板: <div class="test" style="display:none"> <xsl:ch
<div class="test" style="display:none" />
但我需要用这种格式:
<div class="test" style="display:none"></div>
XSL模板:
<div class="test" style="display:none">
<xsl:choose>
<xsl:when test="BookType='SciFi'">
<table class="test" style="display:none">
<tr>
<xsl:for-each select="Books/BookName">
<td>
<span>
<xsl:value-of select="BookName"/>
</span>
</td>
</xsl:for-each>
</tr>
</table>
</xsl:when>
</xsl:choose>
</div>
如何实现这一点?您正在将HTML编写为输出,因此应该使用HTML输出方法
<xsl:output method="html"/>
您可以添加
,这样您就可以在开始div标记之前或之后使用?您的输出方法是否设置为html
?除了Michael对设置
的注释之外,请确保这会导致空的div
序列化,因为
结果元素不在名称空间中,或者,如果您已经创建了XHTML,那么您可以将其与XSLT 2或3处理器一起使用。@ᴇᴛᴀʟ向元素添加空文本节点应该没有效果,当然也不应该影响元素序列化的方式。如果是这样,那就是一个bug。我已经做了这个,但是div仍然像是您使用的是DOM序列化程序,而不是XSLT序列化程序。你没有给我们多少信息。