This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
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