xsl-list
[Top] [All Lists]

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

2003-05-22 07:55:11
[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[(_at_)name=current()/@Type]/@priority'/>
</xsl:apply-templates>

Cheers,

Tom P

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



<Prev in Thread] Current Thread [Next in Thread>