[Home] [By Thread] [By Date] [Recent Entries]
Cox, Todd (NIH/NCI) wrote:
I am trying to do a sort based on a parameter which I can do ok with the following sort statement: That's no surprise, format-number returns a number, and you add a predicate and use it as operand for the '|' operator, both of which requires node sets. There are several possiblities to solve this. One is to
use the the computed percentage as secondary sort key and
assure the first sort key sorts each entry the same way:
<xsl:sort select="server_name[$sort='server_name'] |
nds_name[$sort='nds_name'] |
short_name[$sort='short_name'] |
total_space[$sort='total_space']|
/[$sort='percent']"
order="{$order}" data-type="{$dtype}"/>
<xsl:sort select="format-number((number(used_space[$sort='percent'])
div number(total_space))*100,'0')"
order="{$order}" data-type="{$dtype}"/>
This may be slow, depending on the sort implementation of your
processor.
Another possiblity is to use a two stage approach, first copying
the source, thereby enriching the records with a field for the
percentage, then processing the sorted intermediary result. This
requires an extension function and might use a lot of additional
memory.J.Pietschmann XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|

Cart



