[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[xsl] Re: xsl sort query
Subject: [xsl] Re: xsl sort query From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx> Date: Fri, 29 Aug 2003 19:50:19 +0200 |
Have a look at the XSL-FAQ -- this section should contain the answer to your question: http://dpawson.co.uk/xsl/sect2/N6461.html ===== Cheers, Dimitre Novatchev. http://fxsl.sourceforge.net/ -- the home of FXSL "Cormac Fiddes" <Cormac.Fiddes@xxxxxx> wrote in message news:F240IFW3FPUO*/R=A1/R=PROSYS/U=FIDDES_C/@MHS... > > Hi, > I have the following stylesheet & xml data and I need to dynamically sort the > data coming from the xml file. > > There is a need to sort on 'if' basis, i.e. a value(CFIndica) coming from the > xml file within a different group(HEADINGS) determines the sort. I.E. > > I need to sort by > when CFIndica = 1 then sort by cfnumber ascending > when CFIndica = 2 then sort by cfsurname ascending > when CFIndica = 3 then sort by cfcentre ascending. > AND to allow a default of 'NO' sort, i.e CFIndica might be = 4 or just have a > default of no sort.(perhaps just not apply CFIndica of 1 to 3?). > > I had thought it would be something like this, but sadly no effect. > The xml data is like this, > > > <GROUP_MEMBER_DETAILS> > <CFNumber>18888</CFNumber> > <CFTitle>Mr</CFTitle> > <CFFirstName>Cormac</CFFirstName> > <CFSurname>GGGGGG</CFSurname> > <CFIden>XX999</CFIden> > <CFCentre>1122</CFCentre> > <CFProd>Plan B</CFProd> > <CFCov>Hsteps</CFCov> > <CFAdu>6</CFAdu> > <Students>5</Students> > <Children>7</Children> > <Status>A</Status> > </GROUP_MEMBER_DETAILS> > > <GROUP_MEMBER_DETAILS> > <CFNumber>12345</CFNumber> > <CFTitle>Mr</CFTitle> > <CFFirstName>Cormac</CFFirstName> > <CFSurname>AAAAAA</CFSurname> > <CFIden>XX999</CFIden> > <CFCentre>1122</CFCentre> > <CFProd>Plan B</CFProd> > <CFCov>Hsteps</CFCov> > <CFAdu>6</CFAdu> > <Students>5</Students> > <Children>7</Children> > <Status>A</Status> > </GROUP_MEMBER_DETAILS> > > <GROUP_MEMBER_DETAILS> > <CFNumber>14444</CFNumber> > <CFTitle>Mr</CFTitle> > <CFFirstName>Cormac</CFFirstName> > <CFSurname>CCCCCC</CFSurname> > <CFIden>XX999</CFIden> > <CFCentre>1122</CFCentre> > <CFProd>Plan B</CFProd> > <CFCov>Hsteps</CFCov> > <CFAdu>6</CFAdu> > <Students>5</Students> > <Children>7</Children> > <Status>A</Status> > </GROUP_MEMBER_DETAILS> > > <GROUP_MEMBER_DETAILS> > <CFNumber>16666</CFNumber> > <CFTitle>Mr</CFTitle> > <CFFirstName>Cormac</CFFirstName> > <CFSurname>EEEEEE</CFSurname> > <CFIden>XX999</CFIden> > <CFCentre>1122</CFCentre> > <CFProd>Plan B</CFProd> > <CFCov>Hsteps</CFCov> > <CFAdu>6</CFAdu> > <Students>5</Students> > <Children>7</Children> > <Status>A</Status> > </GROUP_MEMBER_DETAILS> > > <GROUP_MEMBER_DETAILS> > <CFNumber>15555</CFNumber> > <CFTitle>Mr</CFTitle> > <CFFirstName>Cormac</CFFirstName> > <CFSurname>DDDDDD</CFSurname> > <CFIden>XX999</CFIden> > <CFCentre>1122</CFCentre> > <CFProd>Plan B</CFProd> > <CFCov>Hsteps</CFCov> > <CFAdu>6</CFAdu> > <Students>5</Students> > <Children>7</Children> > <Status>A</Status> > </GROUP_MEMBER_DETAILS> > > <GROUP_MEMBER_DETAILS> > <CFNumber>19999</CFNumber> > <CFTitle>Mr</CFTitle> > <CFFirstName>Cormac</CFFirstName> > <CFSurname>HHHHHH</CFSurname> > <CFIden>XX999</CFIden> > <CFCentre>1122</CFCentre> > <CFProd>Plan B</CFProd> > <CFCov>Hsteps</CFCov> > <CFAdu>6</CFAdu> > <CFStu>5</CFStu> > <CFChi>7</CFChi> > <CFSta>A</CFSta> > </GROUP_MEMBER_DETAILS> > > I need to sort by > when CFIndica = 1 then sort by cfnumber ascending > when CFIndica = 2 then sort by cfsurname ascending > when CFIndica = 3 then sort by cfcentre ascending. > AND to allow a default of 'NO' sort, i.e CFIndica might be = 4 or just have a > default of no sort.(perhaps just not apply CFIndica of 1 to 3?). > > I had thought the xsl would be like: > > <!-- > Define sorting in details > --> > <xsl:template match="CF_DETAILS"> > <xsl:variable name="CFOption"> > <xsl:value-of select="string(HEADINGS//CFIndica)"/> > </xsl:variable> > <xsl:if test="$CFOption=1"> > <xsl:apply-templates> > <xsl:sort select="CFNumber" order="ascending" > data-type="number"/> > </xsl:apply-templates> > </xsl:if> > <xsl:if test="$CFOption=2"> > <xsl:apply-templates> > <xsl:sort select="CFSurname" order="ascending" > data-type="number"/> > </xsl:apply-templates> > </xsl:if> > <xsl:if test="$CFOption=3"> > <xsl:apply-templates> > <xsl:sort select="CFCentre" order="ascending" > data-type="number"/> > </xsl:apply-templates> > </xsl:if> > </xsl:template> > > <!-- > Define the elements that are required within the block CF_DETAILS > --> > <xsl:template match="CF_DETAILS"> > <CF_DETAILS> > <xsl:call-template name="G_CF_DETAILS"/> > <xsl:apply-templates select="descendant::CFNumber"/> > <xsl:apply-templates select="descendant::CFTitle"/> > <xsl:apply-templates select="descendant::CFFirstname"/> > <xsl:apply-templates select="descendant::CFSurname"/> > <xsl:apply-templates select="descendant::CFIden"/> > <xsl:apply-templates select="descendant::CFCentre"/> > <xsl:apply-templates select="descendant::CFProd"/> > <xsl:apply-templates select="descendant::CFCov"/> > <xsl:apply-templates select="descendant::CFStu"/> > <xsl:apply-templates select="descendant::CFStu"/> > <xsl:apply-templates select="descendant::CFStu"/> > </CF_DETAILS> > </xsl:template> > > <!-- > call template CF_DETAILS > --> > > <xsl:template name="G_CF_DETAILS"> > <xsl:element name="CF_DETAILS"> > <xsl:attribute name="xfa:dataNode">dataGroup</xsl:attribute> > <xsl:text>begin</xsl:text> > </xsl:element> > </xsl:template> > > Please help out, as this is really bugging me! > > cheers > Cormac > > Cormac Fiddes, > Software Development, > Abbey St. > > Ext: 4386 > > Direct Line: 01-7994009 > > E-Mail : Cormac.Fiddes@xxxxxx > > http://www.vhihealthe.com > http://www.vhihealthcare.com > _____________________________ > > ************************************************************ > This e-mail and any files transmitted with it contain information which may be > confidential and which may also be privileged and is intended solely for the > use of the individual or entity to whom it is addressed. Unless you are the > intended recipient you may not copy or use it, or disclose it to anyone else. > Any opinions expressed are that of the individual and not necessarily that of > Vhi Healthcare. If you have received this e-mail in error please notify the > sender by return. This footnote also confirms that this e-mail message has been > Swept for the presence of computer viruses. > > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] xsl sort query, G. Ken Holman | Thread | [xsl] In XSL FO: how do I repeat a , SANWAL, ABHISHEK (HP |
Re: [xsl] xsl sort query, G. Ken Holman | Date | Re: [xsl] xsl:number and including , Denis Haskin |
Month |