xslt变量基于条件设置

时间:2015-06-03 18:02:47

标签: xslt

我想根据条件设置一个xsl变量。下面的xsl目前不适合我。我已经能够制作两个不同的匹配器(< xsl:template match =“rule / condition”和< xsl:template match =“condition / condition”),这使我能够在条件下放置; display:none / condition匹配但导致模板被复制,除了display:none的一部分。猜猜我的印象是我应该能够根据条件动态设置变量,但也许我的印象是错误的? < xsl:template match =“condition”>     < xsl:variable name =“display”>         < xsl:if test ='name(..)= condition'&gt ;; display = none< / xsl:if>     < / XSL:可变>     < div style =“{$ divIndent} {$ display}”>         < a href =“javascript:void(0)”style =“{$ expandPosition}”onclick =“expandContents(this)”>             < span class =“glyphicon glyphicon-plus”>< / span>         < / A>         & lt; condition type =“< xsl:value-of select =”@ type“/>”& gt;< br />         < xsl:apply-templates select =“expression”/>         < xsl:apply-templates select =“condition”/>         &安培; LT; /条件&安培; GT;     < / DIV> < / XSL:模板>

2 个答案:

答案 0 :(得分:2)

<xsl:if test='name(..)=condition'>;display=none</xsl:if>

这将询问父项的名称是否等于名称为condition的子项的值。您可能想知道父项的名称是否为文字值“条件”:

<xsl:if test='name(..)="condition"'>;display=none</xsl:if>

然而,写作可能更具惯用性:

<xsl:if test='parent::condition'>;display=none</xsl:if>

另请注意,display:none是有效的CSS,display=none可能无效。

答案 1 :(得分:0)

通过添加属性样式

来尝试以下代码

<div><xsl:attribute name ="style"><xsl:if test='name(..)=condition'>display=none;</xsl:if></xsl:attribute></div>

相关问题