2016-07-20 2 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

오늘 새로운 소식을 전해 주셨습니다. 예를 들어 배후에 자세한 설명을 해주셔서 감사합니다. Tim에게 감사드립니다. – BaconJuice

0

가 하나의 xsl:variable<xsl:variable name="PIC" select="if (avatar != '') then avatar else 'placeholder.jpg'"/>로 사용합니다.