ends-with() is an XPath 2.0 function, not available in 1.0.
Michael Kay
Saxonica
On 27 Aug 2020, at 06:21, Leo Studer leo(_dot_)studer(_at_)varioweb(_dot_)ch
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:
This does it ;-)
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform
<http://www.w3.org/1999/XSL/Transform>">
<xsl:output indent="yes"/>
<xsl:template match="Payments">
<Payments>
<xsl:apply-templates/>
</Payments>
</xsl:template>
<xsl:template match="Payment">
<Payment>
<invoiceDetails>
<xsl:apply-templates/>
</invoiceDetails>
</Payment>
</xsl:template>
<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:value-of select="concat(substring-before($first,'#'),';')"/>
<xsl:if test="contains($others,'#')">
<xsl:apply-templates select=".">
<xsl:with-param name="details" select="$others"/>
</xsl:apply-templates>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Cheers
Leo
XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/293509> (by
email <>)
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--