[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Need help with tokenize functionality in XSLT 1.0

Subject: Re: Need help with tokenize functionality in XSLT 1.0
From: "Prady Prady prady.chin@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 25 Aug 2020 21:00:08 -0000
Re:  Need help with tokenize functionality in XSLT 1.0
Thank you very much for your input.

Yes. input can contain details about single order or multiple orders and it
might or might not end with ";".

On Tue, 25 Aug 2020 at 16:53, David Carlisle d.p.carlisle@xxxxxxxxx <
xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:

> You changed the format. in the form you showed originally every item
> terminated with a ; you had two items, and two ;
> the form you show now has one item but no ;
>
> You could add the trailing  ; by making the initial param
>
> <xsl:param name="details" select="concat(invoiceDetails,';')"/>
>
> On Tue, 25 Aug 2020 at 21:41, Prady Prady prady.chin@xxxxxxxxx <
> xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
>> 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>
>>> >
>>>
>>> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
>> EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/2739265> (by
>> email)
>>
> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
> EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/3397216> (by
> email <>)

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.