我有一个XSL文件,我想在两个不同的上下文中包含或使用。在我想要使用的一个上下文中,阻止'阻止'但在其他情况下,我想使用' div class =" Block"'。
有没有什么可以改变我所有的'阻止'在我的XSL到' div class =" Block"'反之亦然,基于上下文,可能使用参数?
答案 0 :(得分:1)
这是一个简单的条件:
<xsl:variable name="outputformat" select="'html'"/>
<xsl:choose>
<xsl:when test="$outputformat = 'html'">
<div class="Block">
<!-- your html code -->
</div>
</xsl:when>
<xsl:otherwise>
<fo:block>
<!-- your normal code -->
</fo:block>
</xsl:otherwise>
</xsl:choose>
或者,您可以创建第二个xsl文档并复制除应更改的节点以外的每个节点 这看起来像是:
<xsl:template match="@*|node()">
<xsl:choose>
<xsl:when test="local-name() = 'block'">
<xsl:element name="div">
<xsl:attribute name="class" select="'Block'"/>
<xsl:apply-templates select="@*"/>
<xsl:apply-templates/>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:otherwise>
</xsl:choose>
</xsl:template>