Use this because of the ending b;b
<xsl:template match="invoiceDetails">
<xsl:param name="details">
<xsl:if test="ends-with(.,';')"><xsl:value-of
select="."/></xsl:if>
<xsl:if test="not(ends-with(.,';'))"><xsl:value-of
select="concat(.,';')"/></xsl:if>
</xsl:param>
<xsl:variable name="first" select="substring-before($details,';')"/>
<xsl:variable name="others" select="substring-after($details,';')"/>
<xsl:if test="contains($others,';')"><xsl:value-of
select="concat(substring-before($first,'#'),';')"/></xsl:if>
<xsl:if test="not(contains($others,';'))"><xsl:value-of
select="substring-before($first,'#')"/></xsl:if>
<xsl:if test="contains($others,'#')">
<xsl:apply-templates select=".">
<xsl:with-param name="details" select="$others"/>
</xsl:apply-templates>
</xsl:if>
</xsl:template>
|