使用 XSL 在 if 条件下在变量中设置值
Setting a value in a variable on if conditions using 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
returns。然后进行测试以检查它是否不为空并分配给 var PIC
,如果它为空,则将值 placeholder.jpg
添加到 var PIC
。
现在由于某种原因我不断收到以下警告
A variable with no following sibling instructions has no effect
关于我在这里做错了什么有什么想法吗?
变量在 XSLT 中是不可变的,一旦设置就无法更改。 xsl:choose
中的变量声明只是在当前块的局部范围内的新声明。 (据说是"shadow"初始变量)。
你需要做的是这个...
<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>
使用单个 xsl:variable
作为 <xsl:variable name="PIC" select="if (avatar != '') then avatar else 'placeholder.jpg'"/>
。
我有一个基本条件,用于检查变量是否为空以及是否像这样将变量设置为特定值。
<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
returns。然后进行测试以检查它是否不为空并分配给 var PIC
,如果它为空,则将值 placeholder.jpg
添加到 var PIC
。
现在由于某种原因我不断收到以下警告
A variable with no following sibling instructions has no effect
关于我在这里做错了什么有什么想法吗?
变量在 XSLT 中是不可变的,一旦设置就无法更改。 xsl:choose
中的变量声明只是在当前块的局部范围内的新声明。 (据说是"shadow"初始变量)。
你需要做的是这个...
<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>
使用单个 xsl:variable
作为 <xsl:variable name="PIC" select="if (avatar != '') then avatar else 'placeholder.jpg'"/>
。