This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Attribute-based XML Sorting using XSL
- From: Peter Davis <pdavis152 at attbi dot com>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Mon, 17 Jun 2002 17:07:49 -0700
- Subject: Re: [xsl] Attribute-based XML Sorting using XSL
- References: <3D0E3B5B.3020909@mattjones.org>
- Reply-to: xsl-list at lists dot mulberrytech dot com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Monday 17 June 2002 12:41, Matt Jones wrote:
> <xsl:apply-templates select="ROW">
> <xsl:sort select="COLUMN[@value]"/>
> </xsl:apply-templates>
What you are saying here is, "Sort using all COLUMN children that have a
'value' attribute." This doesn't take into account the value of @value, so
the sorting is effectively useless.
As you might have guessed, the <xsl:sort/> here is where you need to specify
on which column to sort. What you really wanted to say is, "Sort using the
COLUMN for which @name is equal to the user's desired column, and sort using
the value of @value from that COLUMN".
This is pretty simple to do:
<xsl:sort select="COLUMN[@name = $the-column-name]/@value"/>
A previous responder posted a similar solution, but forgot the '/@value'.
Without the '/@value', the sort will proceed using the text value of the
<COLUMN/> element, which is empty and obviously not what you want.
- --
Peter Davis
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
iD8DBQE9DnnVNSZCJx7tYycRAhuNAKC22QRyHhK/zh2YTyV+98lz+68xLACgoOQY
sc5vHA7BB5W42gdoYHLxF2w=
=Ejlz
-----END PGP SIGNATURE-----
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list