如何更改 <xsl:variable> 的值

11

我无法让这个工作... 我只是想改变一个全局定义变量的值:

                    <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>    

显然代码无效,因为已经定义了{},但我该如何更改其值?


1
投票关闭,因为这是一个完全重复的问题 - Emiliano Poggi
1个回答

15

看看这个链接:

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>

是的,除了示例将true和false绑定到x之外,因此它执行x:= if(c) then true else false可以简化为x:= c - Michael Kay
@MichaelKay:抱歉挖掘旧帖,但我又看到了这篇文章并看到了你的评论。我想指出测试标准是针对文本“yes this is a business”,而不是布尔评估。XSLT表明这不是简单的二进制评估,而是选择2个或更多项目,其中只有一个对评估有意义。评估结果在XSLT上产生真/假响应。干杯! - code4life

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接