[Débutant][XSLT] Tri "multiple"
Bonjour à tous !
J'utilise actuellement un fichier XSL qui ordonne mes records XML par code postal :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="windows-1252"/>
<xsl:template match="*">
<xsl:copy>
<xsl:for-each select="@*">
<xsl:copy-of select="."/>
</xsl:for-each>
<xsl:apply-templates select="node()">
<xsl:sort select="@CodePostal"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet> |
Ce fichier fonctionne très bien mais les besoins ont maintenant changé. Il faut que le fichier XML soit trié par attribut ToBeTreated (0 ou 1; les records ayant 1 d'abord, ceux ayant 0 ensuite), tout en gardant le tri précédent en tri "secondaire". C'est un peu confus, je vais donc donner un petit exemple de ce que je cherche à avoir dans mon XML de sortie après le tri :
<Record ToBeTreated="1" CodePostal="01000" ... />
<Record ToBeTreated="1" CodePostal="02000" ... />
<Record ToBeTreated="1" CodePostal="03000" ... />
<Record ToBeTreated="1" CodePostal="03100" ... />
<Record ToBeTreated="1" CodePostal="04000" ... />
<Record ToBeTreated="1" CodePostal="05000" ... />
<Record ToBeTreated="1" CodePostal="06000" ... />
<Record ToBeTreated="0" CodePostal="01000" ... />
<Record ToBeTreated="0" CodePostal="02000" ... />
<Record ToBeTreated="0" CodePostal="02100" ... />
<Record ToBeTreated="0" CodePostal="03000" ... />
<Record ToBeTreated="0" CodePostal="04000" ... />
<Record ToBeTreated="0" CodePostal="05000" ... />
<Record ToBeTreated="0" CodePostal="06000" ... />
Et ainsi de suite ...
La question est donc la suivante : comment modifier mon fichier XSL de telle manière qu'il adopte le nouveau tri?
Merci d'avance pour vos lumières :D