问题 如何更改值


我不能让它工作......我只是想改变一个全局定义的变量的值:

                    <xsl:variable name="isBusiness"></xsl:variable>
                    <xsl:choose>
                        <xsl:when test="yes this is a business">
                               <xsl:variable name="isBusiness">true</xsl:variable>                        
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:variable name="isBusiness">false</xsl:variable>
                        </xsl:otherwise>
                    </xsl:choose>    

显然代码是无效的,因为已经定义了,但是如何更改值呢?


8040
2018-06-28 01:46


起源

投票结束 完全重复。 - Emiliano Poggi


答案:


检查此链接:

http://www.dpawson.co.uk/xsl/sect2/N8090.html#d10874e187

基本上,您的代码应如下所示:

<xsl:variable name="x">
   <xsl:choose>
     <xsl:when test="a">z</xsl:when>
     <xsl:when test="b">zz</xsl:when>
     <xsl:otherwise>zzz</xsl:otherwise>
   </xsl:choose>
 </xsl:variable>

15
2018-06-28 01:54



是的,除了示例将值true和false绑定到x,因此它正在执行 x := if (c) then true else false 这可以简化为 x := c。 - Michael Kay
@MichaelKay:抱歉复活了一篇旧帖子,但我刚刚再次碰到这篇文章,看到了你的评论。我想指出测试标准是针对文本“是这是一个业务”,而不是布尔值。 xslt表示这不是简单的二进制eval,而是选择2或 更多 项目,其中只有一项对评估有重要意义。 eval的结果在xslt上引发了真/假响应。干杯! - code4life