[XSLT] donner le paramètre "." dans un sort
Bonjour,
J'ai essayé de tourner le problème dans tous les sens et je ne comprends pas ce qui ne va pas.
Puisqu'un exemple vaut mieux qu'un long discours, voici les fichiers simplifiés qui représentent mon problème :
Le XML :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml:stylesheet type="text/xsl" href="test.xsl"?>
<personnes>
<personne>zzzzz
<nom>machin</nom>
<prenom>julien</prenom>
</personne>
<personne>yyyyy
<nom>tachin</nom>
<prenom>aurelien</prenom>
</personne>
<personne>xxxxx
<nom>bachin</nom>
<prenom>patrick</prenom>
</personne>
</personnes> |
Le problème est que j'aimerais trier les personnes par nom, prénom, ou par le texte qui est dans l'élément personne.
J'ai donc un xsl dans ce style :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="iso-8859-1"/>
<xsl:template name="monTemplate">
<xsl:param name="sortBy" />
trié par : <xsl:value-of select="$sortBy" /><br />
<xsl:for-each select="personne">
<xsl:sort select="*[name() = $sortBy]" order="ascending"/>
<xsl:value-of select="nom"/> <xsl:value-of select="prenom"/><br />
</xsl:for-each>
</xsl:template>
<xsl:template match="personnes">
<xsl:call-template name="monTemplate">
<xsl:with-param name="sortBy">nom</xsl:with-param>
</xsl:call-template>
</xsl:template>
</xsl:stylesheet> |
Tout va bien pour trier par nom ou par prénom, mais dés que je je veux trier par cette foutue valeur dans personne, je n'y arrive pas.
J'ai essayé :
Code:
1 2 3
| <xsl:call-template name="monTemplate">
<xsl:with-param name="sortBy">.</xsl:with-param>
</xsl:call-template> |
Mais ça ne joue pas.
Comment faire ?