我有一个如下所示的模板
< xsl:template match =“more-info”mode =“docuSection”> HTML < / XSL:模板>
并通过电话
应用< xsl:apply-templates select =“。”模式= “docuSection”/>
因此当当前节点具有 more-info 元素时应用模板,是否有办法使该模板应用相同的调用并且条件包括全局变量,例如match =“$ mode ='edit'或more-info”
最诚挚的问候, 凯沙夫
答案 0 :(得分:1)
有没有办法制作这个模板 得到同样的电话和 条件包括a 全局变量例如 match =“$ mode ='edit'或more-info”
在XSLT 2.0中,这是完全合法的:
<xsl:template match="more-info[$mode = ('edit', 'more-info')]"
mode="docuSection">
在XSLT 1.0中禁止在匹配模式中使用变量或键引用。
但是,可以使用以下任一技术:
予。在<xsl:apply-templates>
指令中,指定要处理的节点的确切节点列表。
<xsl:apply-templates mode="docuSection"
select="self::*[$mode = 'edit' or $mode='more-info']" />
||。使匹配模式更通用,但仅在满足所需条件时才在模板中进行任何处理:
<xsl:template match="more-info" mode="docuSection">
<xsl:if test="$mode = 'edit' or $mode='more-info'">
html
</xsl:if>
</xsl:template>