2017-06-19 49 views
0

在我的ESP(电子邮件服务提供商)中,我有一个包含变量的列表或客户,并且我有xslt,它将XML馈送解析为(动态)邮件。 现在,我想个性化我的邮件,发送不同的内容给不同的电子邮件订阅者。可能在子节点中使用变量? (xslt/for-each)

我有一个变量$ 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

这不是我清楚您说的“用户变量”的意思,而我无法评价你的样式表片段断章取义。呈现[mcve]将使您更有可能获得帮助。 –

+3

尝试删除撇号和大括号。 - P.S.有可能有更好的方法来做到这一点 - 但我们不知道这*是什么。 –

回答

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>