2

我必须在 XSL 中编写一个简单的条件:

IF column=0 AND IF result = .35 
    set background color to green and write $result
ELSE IF result = 0.10 
    set background color to white and write the word "QQQ"

我已经尝试过了,但它不起作用:

<xsl:param name="result"  />
    <xsl:param name="column" />    

    <xsl:if test="$result  = 0.35 and $column = 0">
        <xsl:attribute name='background-color'>#669933</xsl:attribute>
        <xsl:value-of select="result"/>      
    </xsl:if>

    <xsl:if test="$result = 0.10">
        <xsl:value-of select="QQQ"/>
    </xsl:if>

有什么建议么?

4

2 回答 2

4
<xsl:if test="$result  = 0.35 and $column = 0">    
    <xsl:attribute name='background-color'>#669933</xsl:attribute>

    <xsl:value-of select="result"/>          
</xsl:if>    

<xsl:if test="$result = 0.10">    
    <xsl:value-of select="QQQ"/>    
</xsl:if>

您在上面的代码中恰好犯了两个错误。

这是更正后的版本:

 <xsl:if test="$result  = 0.35 and $column = 0">
   <xsl:attribute name='background-color'>#669933</xsl:attribute>
   <xsl:value-of select="$result"/>
 </xsl:if>

 <xsl:if test="$result = 0.10">
   <xsl:value-of select="'QQQ'"/>
 </xsl:if>

错误是

  1. result表示名为 result 的元素,它们是上下文节点的子节点。你想要<xsl:variable>命名的result. 根据定义,任何引用的名称<xsl:variable>都应以$字符为前缀。

  2. <xsl:value-of select="QQQ"/>选择名为的当前节点的所有子节点QQQ并输出第一个节点的字符串值。您只想生成字符串'QQQ'。根据定义,要将字符串与名称区分开来,字符串必须用引号或撇号括起来。

于 2010-04-20T18:52:31.267 回答
0

如果要设置元素的背景颜色,请将 xsl:attribute 的“名称”设置为“样式”,并将值设置为“背景颜色:#669933”。例如:

<div>
    <xsl:if test="$result  = 0.35 and $column = 0">
        <xsl:attribute name='style'>background-color:#669933</xsl:attribute>
        <xsl:value-of select="$result"/>
    </xsl:if>
    <xsl:if test="$result = 0.10">
        <xsl:attribute name='style'>background-color:#ffffff</xsl:attribute>
        <xsl:value-of select="'QQQ'"/>
    </xsl:if>
</div>
于 2011-12-17T04:40:36.550 回答