This works good. Thanks for the solution.
But this is not working if there is only one order
eg:
=====================
Input xml:
<Payments>
<Payment>
<invoiceDetails>order1#amt1</invoiceDetails>
</Payment>
</Payments>
I need to be able to convert this to:
Output xml:
<Orders>
<Order>
<OrderNumber>order1</OrderNumber>
<Amount>amt1</Amount>
</Order>
</Orders>
======================
On Thu, 20 Aug 2020 at 12:52, Leo Studer leo.studer@xxxxxxxxxxx <
xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> Nice, a recursive template with a parameter ;-)
>
> Cheers
> Leo
>
>
> >
> > <xsl:template match="Payment">
> > <xsl:param name="details" select="invoiceDetails"/>
> > <xsl:variable name="car" select="substring-before($details,';')"/>
> > <xsl:variable name="cdr" select="substring-after($details,';')"/>
> > <Order>
> > <OrderNumber><xsl:value-of
> select="substring-before($car,'#')"/></OrderNumber>
> > <Ammount><xsl:value-of select="substring-after($car,'#')"/></Ammount>
> > </Order>
> > <xsl:if test="contains($cdr,'#')">
> > <xsl:apply-templates select=".">
> > <xsl:with-param name="details" select="$cdr"/>
> > </xsl:apply-templates>
> > </xsl:if>
> > </xsl:template>
|