Subject: RE: [xsl] Dynamically controlling sort order based on values in the XML From: "Aron Bock" <aronbock@xxxxxxxxxxx> Date: Fri, 03 Jun 2005 14:10:11 +0000 |
I need to be able to sort the data based on the CONFIG element of the XML
and I don't know ahead of time how many columns there are going to be in the
dataset and how many of them I will need to sort by.
From: "Steve W" <lsl@xxxxxxxxxxxxx>
Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Subject: [xsl] Dynamically controlling sort order based on values in the XML
Date: Fri, 3 Jun 2005 10:27:37 +0100
I have some xml that looks like :
<DISPLAY> <CONFIG> <COL> <ID>ColA</ID> <ORDERBY DIRECTION="ASC">1</ORDERBY> </COL> <COL> <ID>ColB</ID> <ORDERBY DIRECTION="DSC">2</ORDERBY> </COL> </CONFIG> <DATA> <ROW> <COL ID="ColA"> <VALUE>BBB</VALUE> </COL> <COL ID="ColB"> <VALUE>111</VALUE> </COL> </ROW> <ROW> <COL ID="ColA"> <VALUE>CCC</VALUE> </COL> <COL ID="ColB"> <VALUE>333</VALUE> </COL> </ROW> <ROW> <COL ID="ColA"> <VALUE>AAA</VALUE> </COL> <COL ID="ColB"> <VALUE>222</VALUE> </COL> </ROW> </DATA> </DISPLAY>
I have a stylesheet that outputs the data sorted by the element in CONFIG where COL/ORDERBY/text() is 1, which looks like :
<xsl:template match="DISPLAY"> <xsl:variable name="sort_col" select="CONFIG/COL[ORDERBY/text()='1']/ID/text()" /> <xsl:apply-templates select="DATA/ROW" mode="do_data"> <xsl:sort select="COL[@ID=$sort_col]/VALUE/text()" /> </xsl:apply-templates> </xsl:template>
<xsl:template match="ROW" mode="do_data"> <xsl:value-of select="COL[@ID='ColA']/VALUE/text()" />, <xsl:value-of select="COL[@ID='ColB']/VALUE/text()" /> <br /> </xsl:template>
This gives me : AAA, 222 BBB, 111 CCC, 333
I need to be able to sort the data based on the CONFIG element of the XML
and I don't know ahead of time how many columns there are going to be in the
dataset and how many of them I will need to sort by.
Can anyone suggest a way to achive this ?
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Dynamically controlling sort , Steve W | Thread | Re: [xsl] Dynamically controlling s, omprakash . v |
Re: [xsl] Dynamically controlling s, omprakash . v | Date | Re: [xsl] Saxon for windows?, Kevin Rodgers |
Month |