RE: [xsl] Processing an element only if there are no better optio ns

Subject: RE: [xsl] Processing an element only if there are no better optio ns
From: "Passin, Tom" <tpassin@xxxxxxxxxxxx>
Date: Thu, 22 May 2003 10:55:11 -0400
[Dustin, Dave]
> Problem is that Type1 is not what the actual value is.  The 
> possible values
> are (in the order of preference)
> 
> Media Release
> Assessment
> Reaction
> Citation
> 
> Problem is, the system that generates the XML will spit these out in a
> random order, so I can't rely on the one I want to appear 
> first, nor can I
> sort them due to the text order. 

You can declare  your own priorities for sorting like this.  

<xsl:stylesheet version="1.0" 
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
	xmlns:doc='local:sort'> <!-- arbitrary namespace URI -->

<xsl:variable name='priorities' 
      select='document("")/xsl:stylesheet/doc:priority/term'/>

<doc:priority>
	<term name='Type1' priority='1'/>
	<term name='Type2' priority='2'/>
	<term name='Type3' priority='3'/>
</doc:priority>
....
Then for sorting, you can use your priorities like so -

<xsl:apply-templates select='Product'>
   <xsl:sort data-type='number'
               select='$priorities[@name=current()/@Type]/@priority'/>
</xsl:apply-templates>

Cheers,

Tom P

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


Current Thread