Re: [xsl] Sorting problem

Subject: Re: [xsl] Sorting problem
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Wed, 03 Sep 2003 15:54:08 -0400

Your problem is that in order to sort, you need to be able to select a *node* for each node being sorted, whereas format-number will return you a string. You can't select a string for processing, alas, even for purposes of sorting by them.

I recommend a two-pass solution. In the first pass -- which will be a near-identity transform -- decorate your data with new nodes describing such things as the proportion between space used and total space as applied to a given parent node. Then it'll be there in the form -- nodes -- that your second transform wants to pick up for its sorting.

I hope this helps,

At 02:54 PM 9/3/2003, you wrote:
Hello All,

I have been looking in the sorting FAQ but haven't been able to solve my

I am trying to do a sort based on a parameter which I can do ok with the following sort statement:

<xsl:sort select="server_name[$sort='server_name'] |
                            nds_name[$sort='nds_name'] |
                            short_name[$sort='short_name'] |
order="{$order}" data-type="{$dtype}"/>

The above code sorts fine but I have one other sorting criteria. Based on
the used_space and total_space I figure a percent value and would like to
sort on it. The problem is I can get it to work all by its lonesome using
the following:

<xsl:sort select="format-number((number(used_space) div number(total_space))
* 100,'0')" order="{$order}" data-type="number"/>

but when I put it in with the following I get an error.

<xsl:sort select="server_name[$sort='server_name'] |
                  nds_name[$sort='nds_name'] |
                  short_name[$sort='short_name'] |
                  total_space[$sort='total_space'] |
                  format-number((number(used_space) div number(total_space))
order="{$order}" data-type="{$dtype}"/>

Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.      
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
  Mulberry Technologies: A Consultancy Specializing in SGML and XML

XSL-List info and archive:

Current Thread