在下面的xslt中,我可以在运行时获得两个emailaddress值,如Redemptions@test.com; helpdesk@test.com
<xsl:element name="FROM">
<xsl:value-of select="*/EMAIL_ADDRESS"/>
</xsl:element>
我需要检查是否有两个地址并在分号前删除第一个地址(;)我无法从两个电子邮件地址发送电子邮件。
答案 0 :(得分:0)
要检查是否有两封邮件或只有一封邮件可以在<xsl:choose>
块内使用<xsl:element name="FROM">
,那么如果有多封邮件使用substring-after(*/EMAIL_ADDRESS, ';')
,请参阅下文:
<xsl:element name="FROM">
<xsl:choose>
<!--check if semicolon exists - will mean that there is more than one mail-->
<xsl:when test="contains(*/EMAIL_ADDRESS, ';')">
<xsl:choose>
<!--check if after first semicolon there is one more and take value before it-->
<xsl:when test="contains(substring-after(*/EMAIL_ADDRESS, ';'), ';')">
<xsl:value-of select="substring-before(substring-after(*/EMAIL_ADDRESS, ';'), ';')"/>
</xsl:when>
<xsl:otherwise>
<!--get second mail after semicolon-->
<xsl:value-of select="substring-after(*/EMAIL_ADDRESS, ';')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<!--otherwise it simply takes value of */EMAIL_ADDRESS-->
<xsl:value-of select="*/EMAIL_ADDRESS"/>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
按预期结果:
<FROM>helpdesk@test.com</FROM>