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

RE: Is it possible to create xsl:sort from input para

Subject: RE: Is it possible to create xsl:sort from input parameters using XSLT 2.0 (Saxon)?
From: Nick Glenister <NGlenister@xxxxxxxxxxxxxxxx>
Date: Thu, 27 Jul 2006 14:32:56 +0100
xsl sort order data type
Hi,

Thanks for the reply, it make perfect sense. I will try the following
instead which will limit me to a maximum of three sorts but is probably more
than enough in practice.

<xsl:for-each select="$tempRoot/product">
    <xsl:choose>
        <xsl:when test="boolean($sortField)=true">

            <xsl:sort select="$sortField/SortField[1]"
order="$sortField/SortField[1]/@Order"
data-type="$sortField/SortField[1]/@DataType"
case-order="$sortField/SortField[1]/@CaseOrder" />

            <xsl:sort select="$sortField/SortField[2]"
order="$sortField/SortField[2]/@Order"
data-type="$sortField/SortField[2]/@DataType"
case-order="$sortField/SortField[2]/@CaseOrder" />

            <xsl:sort select="$sortField/SortField[3]"
order="$sortField/SortField[3]/@Order"
data-type="$sortField/SortField[3]/@DataType"
case-order="$sortField/SortField[3]/@CaseOrder" />

        </xsl:when>
    </xsl:choose>
</xsl:for-each>


Cheers

Nick

-----Original Message-----
From: Huditsch, Roman (LNG-VIE) [mailto:Roman.Huditsch@xxxxxxxxxxxxx]
Sent: 27 July 2006 13:55
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE:  Is it possible to create xsl:sort from input
parameters using XSLT 2.0 (Saxon)?


Hi Nick,

As far as I can tell, it is not possible to generate <xsl:sort>
instructions that way, since the <xsl:sort>s in your example would only
apply to your inner for-each loop.
Is a two-pass solution also suitable for you?

best regards,
Roman

> -----Original Message-----
> From: Nick Glenister [mailto:NGlenister@xxxxxxxxxxxxxxxx]
> Sent: Thursday, July 27, 2006 1:01 PM
> To: 'xsl-list@xxxxxxxxxxxxxxxxxxxxxx'
> Subject:  Is it possible to create xsl:sort from input
> parameters using XSLT 2.0 (Saxon)?
>
> Hi,
>
> I am trying to create dynamic sorts in my XSLT file so the
> end user can select different fields to sort the data on then
> rerun the XSLT.
>
> The XSLT is called from a vb.net app where the chosen sort
> fields are passed as XML into a param called sortField:
>
> <SortFields>
>       <SortField DataType="number" CaseOrder="lowercasefirst"
> Order="ascending">lenderid</SortField>
>       <SortField DataType="number" CaseOrder="lowercasefirst"
> Order="ascending">generalproductid</SortField>
> </SortFields>
>
> Using the following XSL:
>
>       <xsl:for-each select="$tempRoot/product">
>               <xsl:choose>
>                       <xsl:when test="boolean($sortField)=true">
>                               <xsl:for-each
> select="$sortField/SortFields/SortField">
>                                       <xsl:sort select="."
> order="@Order"
> data-type="@DataType" case-order="@CaseOrder" />
>                               </xsl:for-each>
>
>                       </xsl:when>
>               </xsl:choose>
>       </xsl:for-each>
>
>
> which (in my head at least) would result in something akin too:
>
>       <xsl:for-each select="$tempRoot/product">
>               <xsl:sort select="lenderid" order="ascending"
> data-type="number" case-order="lowercasefirst"/>
>               <xsl:sort select="generalproductid" order="ascending"
> data-type="number" case-order="lowercasefirst"/>
>       </xsl:for-each>
>
>
> The main input XML document which is being transformed looks
> like this:
>
> <root>
>       <product>
>               <lenderid>1234</lenderid>
>               <generalproductid>12344321</genrealproductid>
>               <lendername>fred</lendername>
>                ...
>       </product>
>       <product>
>               ...
>       </product>
> </root>
>
>
> Having tried doing it I'm now pretty sure that this isn't
> possible as I get a compile error on the xsl:sort order as it
> is expecting ascending or descending.
>
> Is there any other way of achieving this?
>
>
> Cheers
>
> Nick
>
>
>
>
> The Investment, Life & Pensions Annual Awards Lunch 2006 will
> take place on Wednesday 20th September at The Brewery,
> Chiswell Street, London. To book your table or for more
> information, contact Miranda Siliprandi on 0870 2250 491 or
> email msiliprandi@xxxxxxxxxxxxxxxx
>
> The Moneyfacts 11th Annual Conference takes place on Tuesday
> 7th November 2006 at the Shaw Centre, Novotel Euston London
> in association with our Platinum Sponsors, CACI. For
> sponsorship and general enquires please email Anne Joyce at
> ajoyce@xxxxxxxxxxxxxxxx or to reserve your place, call our
> ticket hotline on 0870 2250 100.
>
> E-mail Disclaimer: This e-mail message contains confidential
> information and is intended only for the individual entity or
> organisation named. If you are not the named addressee you
> should not disseminate, distribute, print or copy this e-mail
> and/or attachments (either whole or partial). To do so may
> constitute a breach of confidence and/or privilege. Please
> notify the sender immediately by e-mail if you have received
> this e-mail by mistake and delete this e-mail permanently
> from your system. E-mail transmissions cannot be guaranteed
> to be secure or error-free as information could be
> intercepted, corrupted, lost, destroyed, maliciously altered,
> arrive late or incomplete, or contain viruses. The sender
> therefore does not accept liability for any errors or
> omissions in the contents of this message, which arise as a
> result of e-mail transmission. If verification is required
> please request a hard-copy version. Please note that any
> views or opinions presented in this e-mail are !
>  those of the author and do not necessarily represent those
> of Moneyfacts Group plc or their affiliates. Whilst every
> step is taken to ensure e-mails are virus free when they
> leave Moneyfacts Group systems, we accept no liability for
> any damage caused by any virus received.   This outbound
> message has been scanned for viruses by MailControl for
> Moneyfacts Group plc. 



This inbound message has been scanned for viruses by MailControl for
Moneyfacts Group plc.

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.