2016-07-20 5 views
0

変数が空であるかどうかをチェックし、そのように特定の値に変数を設定するかどうかを確認する基本条件があります。XSLを使用している条件の場合に変数の値を設定する

<xsl:variable name="PIC" select="avatar"/> 

<xsl:choose> 
    <xsl:when test="avatar !=''"> 
    <xsl:variable name="PIC" select="avatar"/> 
    </xsl:when> 
    <xsl:otherwise> 
    <xsl:variable name="PIC" select="'placeholder.jpg'"/> 
    </xsl:otherwise> 
</xsl:choose> 

基本的には、var PICはavatarが返す値に設定されます。次に、空でないかどうかをチェックしてvar PICに割り当てられているかどうかをチェックし、空の場合はplaceholder.jpgがvar PICに追加されます。

は現在、いくつかの理由のために私はここで間違ってやっているかについて、次の警告

A variable with no following sibling instructions has no effect

任意のアイデアを得続けますか?

答えて

1

変数はXSLTでは変更できません。一度設定した変数は変更できません。 xsl:chooseの変数宣言は、現在のブロックのスコープ内のローカルでの単純な宣言です。 (初期変数を「シャドー」すると言われています)。あなたがする必要がどのような

<xsl:variable name="PIC"> 
    <xsl:choose> 
    <xsl:when test="avatar !=''"> 
     <xsl:value-of select="avatar"/> 
    </xsl:when> 
    <xsl:otherwise> 
     <xsl:value-of select="'placeholder.jpg'"/> 
    </xsl:otherwise> 
    </xsl:choose> 
</xsl:variable> 
+0

今日、新しいことを学びました。あなたの例の背後にある詳細な説明をいただき、ありがとうございます。 – BaconJuice

0

<xsl:variable name="PIC" select="if (avatar != '') then avatar else 'placeholder.jpg'"/>として単一xsl:variableを使用して...これです。

関連する問題