Selon le code XML suivant, quel est le meilleur moyen d'obtenir un tri alphanumérique dans XSL?Comment appliquer un tri alphanumérique dans XSLT
Modifier: pour clarifier, le XML ci-dessous est juste un échantillon simple le vrai XML contiendrait beaucoup plus de valeurs variantes.
<colors>
<item>
<label>Yellow 100</label>
</item>
<item>
<label>Blue 12</label>
</item>
<item>
<label>Orange 3</label>
</item>
<item>
<label>Yellow 10</label>
</item>
<item>
<label>Orange 26</label>
</item>
<item>
<label>Blue 117</label>
</item>
</colors>
E.g. Je veux un résultat final dans cet ordre:
Blue 12, Blue 117, Orange 3, Orange 26, Yellow 10, Yellow 100
Ceci est « efficacement » ce que je veux.
<xsl:apply-templates select="colors/item">
<xsl:sort select="label" data-type="text" order="ascending"/><!--1st sort-->
<xsl:sort select="label" data-type="number" order="ascending"/><!--2nd sort-->
</xsl:apply-templates>
<xsl:template match="item">
<xsl:value-of select="label"/>
<xsl:if test="position() != last()">,</xsl:if>
</xsl:template>
Je mis à jour ma réponse avec une approche plus générique au problème. –