我必须在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>
有什么建议吗?
答案 0 :(得分:3)
<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>
错误:
result
表示名为result的元素,它们是上下文节点的子元素。您希望名为<xsl:variable>
的{{1}}。根据定义,任何引用的result
的名称都应以<xsl:variable>
字符作为前缀。
$
选择名为<xsl:value-of select="QQQ"/>
的当前节点的所有子节点,并输出第一个节点的字符串值。您只需要生成字符串QQQ
。根据定义,要区分字符串和名称,字符串必须用引号或撇号括起来。
答案 1 :(得分:0)
如果要设置元素的背景颜色,请将xsl:属性的“name”设置为“style”,将值设置为“background-color:#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>