微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

XSL模板如何动态确定匹配哪种模式

如何解决XSL模板如何动态确定匹配哪种模式

假设XSLT模板在两种模式下匹配元素,是否可以动态找出哪个模式触发了匹配?

在伪xslt中:

template match="elementname" mode="a b"  
    if %mode% = 'a' then do something
    if %mode% = 'b' then do something

(这在两种模式下90%的模板相同的情况下很有用,但在一种情况下,需要创建附加属性

(这个问题已经被问到了Is there a way to use mode in an xsl:if test?,我的错误是没有发现它。仍然感谢您的答复)

解决方法

您始终可以使用参数:

  <xsl:apply-templates select="*" mode="ab">
    <xsl:with-param name="sw">a</xsl:with-param>
  </xsl:apply-templates>


<xsl:template select="elementname" mode="a b">
  <xsl:param name="sw" />
  <xsl:if test="$sw='a'>do this</xsl:if>

</xsl:template>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。