可以在子节点中使用变量吗? (XSLT /的for-each)

时间:2017-06-19 17:26:44

标签: xslt smarty

在我的ESP(电子邮件服务提供商)中我有一个列表或带有变量的客户,我有xslt将XML提要解析为(动态)邮件。 现在,我想个性化我的邮件,向不同的电子邮件订阅者发送不同的内容。

我有一个变量$ profile.pos1_day_camp(可以是数值),我想根据这个变量显示它们的内容。内容因子节点而异。它是商店的@id。

所以,显示

{if $profile.pos1_day_camp == 1}
<xsl:for-each select="//shop[@id='1']/offer]">
**"show content of shop id 1"**
</xsl:for-each>
{/if}

{if $profile.pos1_day_camp == 17}
<xsl:for-each select="//shop[@id='17']/offer]">
**"show content of shop id 17"**
</xsl:for-each>
{/if}

等。但是这将成为太多的代码,因为有许多可能的值,因此我希望将变量放在for-each中。那可能吗?如果我这样做,它什么都不显示:

<xsl:for-each select="//shop[@id='{$profile.pos1_day_camp}']/offer">
**"show content of shop id xx"**
</xsl:for-each>

谢谢!

1 个答案:

答案 0 :(得分:0)

明白了,谢谢

<xsl:for-each select="shop">
{if $profile.pos1_daily == <xsl:value-of select="@id" />}
        ....
<xsl:for-each select="offer">
</xsl:for-each>  
{/if}
</xsl:for-each>