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>

上記のコードでは、正確に 2 つのエラーを犯しています。

修正版は次のとおりです。

 <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 の「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>
于 2011-12-17T04:40:36.550 に答える