I am trying to sort something using XSLT. I am going to give examples.




1. The number of cars is limited to 3.
2. <DealerRating> has a higher priority than <MyRating> as long as DR>0 (Not 0). For example, if DR=3 and MR=2, then rating =3. Or if DR=0 and MR=1, now however, rating =1 because DR=0.
3. Apply some XSLT to Original.xml to get the following Result.xml



<Car name1="Ford" rating1="1" name2="Nissan" rating2="3" name3="Honda" rating3="5"/>


As you can see, the attributes are generated by sorting the <Car> elements in Original.xml in ascending order of rating as described above.
Right now, I am doing this using dom4j. I would like to do this in XSLT.

Note: Don't worry about the XSLT logic which compares <MyRating> and <DealerRating> and then gives me a rating. I have already done that.

My problem is that I would like to sort on the rating1, rating2 and rating3 attributes.

Some pseudocode for my XSLT sorting part (Right now, I parse the Original.xml file using dom4j. Then, I add a <rating> element to the Original.xml after deciding which rating to use in each <Car> element. I don't want to change the Original.xml by inserting my rating attribute.):

<xsl:for-each select="Car">

<!-- <xsl:sort> on <rating> which I get from my Java code

Then write name1="XXX" and rating1="XXX"
<if position()=2>
Then write name2="XXX" and rating2="XXX"
<if position()=3>
Then write name3="XXX" and rating3="XXX"

Any suggestions would be appreciated.