This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Sorting problem...


David M. Goudreau wrote:

> I'm trying to sort some concatenated strings in a dropdown box in my XSL.
> (I'm also sure there's a more compact way to write my XSL, frankly).  My XML
> is:
> 
> <root sub_id="84">
> 	<folder name="c" cdate="2/13/01" id="f_49">
> 		<folder name="m" cdate="2/13/01" id="f_42" />
> 	</folder>
> 	<folder name="y" cdate="2/13/01" id="f_45" />
> 	<folder name="d" cdate="2/13/01" id="f_43" />
> 	<folder name="r" cdate="2/13/01" id="f_44" />
> 	<folder name="d" cdate="2/13/01" id="f_49">
> 		<folder name="t" cdate="2/13/01" id="f_42">
> 			<folder name="z" cdate="2/13/01" id="f_42">
> 		</folder>
> 	</folder>
> </root>
> 
> I want my output to look alphabetical like the following:
> 
> -c
> --c:m
> -d
> --d:t
> ---d:t:z
> -r
> -y
> 
> My XSL looks like this:

try using something like <xsl:sort select="@name"/> to handle your alpha 
sort first, the rest is recursion

-------------------------------

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="root"> 

<xsl:apply-templates select="folder">
<xsl:sort lang="en" select="@name" data-type="text"/>
</xsl:apply-templates>


          
</xsl:template>

<xsl:template match="folder">
<xsl:value-of select="@name"/>
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
-------------------------------

i leave the select / option tag stuff to u.

w3 org on sorting
http://www.w3.org/TR/xsl#sorting

xsl faq on sorting in general
http://www.dpawson.co.uk/xsl/N6461.html#N35304

,jim fuller


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]