Re: [xsl] String manipulation in Xslt 1.0

Subject: Re: [xsl] String manipulation in Xslt 1.0
From: "Leo Studer leo.studer@xxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 27 Aug 2020 05:21:33 -0000
This does it ;-)

<xsl:stylesheet version="1.0"
xmlns:xsl="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

Current Thread