Bonjour tout le monde

J'ai un petit souci avec XSL, voici mon fichier XML
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
<repertoire>
     <personne id="1">
         <nom pays="Belgique" ville="Yvoir">Dupont</nom>
         <prenom>Jean</prenom>
         <age jour="22" mois="06" annee="1978">29</age>
     </personne>
     ...
</repertoire>
Les ... signifie qu'il y'a plusieurs node personne
j'utilise PHP pour afficher le résultat, jusque là pas de souci, j'envoi 2 paramètre à mon XSL via PHP
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
if(isset($_GET['orderby'])){ $orderby = $_GET['orderby']; }
else{ $orderby = 'nom'; }
$xslt->setParameter('', 'orderby', $orderby );
if(isset($_GET['sens'])){ $sens = $_GET['sens']; }
else{ $sens = 'ascending'; }
$xslt->setParameter('', 'sens', $sens );
et dans mon fichier XSL je voudrai donc effectuer un triage en fonction de ces 2 paramètre, pour les élément tel que nom,prenom,age pas de souci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
<xsl:param name="orderby"/>
<xsl:param name="sens"/>
<xsl:template match="/">
     <xsl:for-each select="repertoire/personne">
         <xsl:sort select="*[name()=$orderby]" order="{$sens}"/>
         etc...
     </xsl:for-each>
</xsl:template>
Mon problème est que pays,ville,jour,mois,annee sont des attribut et non des élément la logique voudrai donc que lorsque c'est pays/ville/jour/mois/annee il devrais faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
<xsl:param name="orderby"/>
<xsl:param name="sens"/>
<xsl:template match="/">
     <xsl:for-each select="repertoire/personne">
         <xsl:sort select="*@[name()=$orderby]" order="{$sens}"/>
         etc...
     </xsl:for-each>
</xsl:template>
Mais je ne sais pas comment faire en sorte que si $orderby = nom ou prenom ou age alors il ne mette pas le @ et si $orderby = pays ou ville ou jour ou mois ou annee alors le @ ( pour spécifier attribut ) ce place

Je sais pas si c'est clair ce que je raconte, sinon hésite pas à me le dire et j'essayerai de mieux détailler.

d'avance merci de votre aide