2011-11-22 217 views
1

我有另一个简单的xsl变量问题。我正在尝试评估表达式并切换“AM”或“PM”后缀。该变量从不计算任何东西。我甚至改变了我的测试,但没有运气。XSL变量赋值

<xsl:variable name="DisplayAMPM"> 
    <xsl:choose> 
    <xsl:when test="number(substring($LastBootUpTime, 9,2))>11"> 
     <xsl:value-of select="PM"/> 
    </xsl:when> 
    <xsl:otherwise> 
     <xsl:value-of select="AM"/> 
    </xsl:otherwise> 
    </xsl:choose> 
</xsl:variable> 
<xsl:copy-of select="DisplayAMPM"/> 

回答

3

如果使用value-of,把“AM”和引号“PM”,使处理器将其视为一个字符串。

此外,如果您引用变量,就像您在copy-of中所做的那样,请不要忘记$

<xsl:variable name="DisplayAMPM"> 
    <xsl:choose> 
    <xsl:when test="number(substring($LastBootUpTime, 9,2))>11"> 
     <xsl:value-of select="'PM'"/> 
    </xsl:when> 
    <xsl:otherwise> 
     <xsl:value-of select="'AM'"/> 
    </xsl:otherwise> 
    </xsl:choose> 
</xsl:variable> 
<xsl:copy-of select="$DisplayAMPM"/> 
+0

谢谢,AM \ PM周围的单引号(以及var name中的$)起作用。 – sqlpadawan

+0

你非常欢迎。很高兴它的工作。 –

+1

详细说明:如果没有引号,你需要提供名为'AM'或'PM'的子元素的值。结果是一个空的节点集,而空节点集的字符串值是一个空字符串。 – LarsH

0

您的test属性失控>人物当然这应该是&gt;。其次,你不复制你的变量($DisplayAMPM),而是复制(不存在的?)DisplayAMPM元素子节点组。

+3

其实'''是有效的。 –

+0

我提出了改变建议,仍然没有运气。测试看起来像并且复制到 sqlpadawan