带有if else的每个循环的XSLT

时间:2017-11-09 22:17:47

标签: xslt

这是出于大学目的。我的xslt无效。我试图为每个with和if语句做一个for-each。我尝试使用=或!=它不起作用。

非常感谢任何帮助。 (对不起,缩进很糟糕)。

<xsl:for-each select="$rankingItems/userDefinedVectorLine[userDefinedField/fieldLabel='LIST' 
and (userDefinedField[fieldLabel='COUP'] or userDefinedField[fieldLabel='PAY']) ]" >
<xsl:variable name="date" select="userDefinedField[fieldLabel='LIST']/fieldValue"/>
<xsl:variable name="Tempo" select="userDefinedField[2]/fieldLabel"/>
<xsl:if  test="$Tempo!='COUP'" >
    <xsl:variable name="coupon" select="'TITI'" />
</xsl:if> 
    <xsl:value-of select="$date"/>
    <xsl:value-of select="$coupon"/>
 </xsl:for-each> 

1 个答案:

答案 0 :(得分:1)

在您的代码中coupon变量仅存在于xsl:if块内。 因此,当您尝试使用它时(在xsl:if块之外),您将获得一个空值。

您可能应该“无条件”创建此变量,但内容 应该根据条件创建,例如:

<xsl:variable name="coupon" select="if ($Tempo!='COUP') then 'TITI' else ''" />

还有一个问题:你的意图是coupon变量吗? 包含'TITI'常量字符串)? 或者它的值应该是TITI(孩子)元素的内容?

如果第二个为真,则只写TITI而不包含撇号。

最后一句话:提问也提供了源XML代码。