XSLT trier par valeur de l'attribut

J'ai une question sur la façon de tri basé sur la valeur de l'attribut.

J'ai la suite du document source et je voudrais trier les éléments de piste par la valeur du titre valeur de classe.

J'espère que quelqu'un peut aider avec ceci.

 <trackList>

    <track>
        <location>http://localhost/vmydoc</location>
        <title class="STD">Data Two</title>
        </track>
    <track>
        <location>http://localhost/vmydoc</location>
        <title class="SH">Data Three</title>

    </track>
    <track>
        <location>http://localhost/vmydoc</location>
        <title class="STD">Data Four</title>

    </track>
    <track>
        <location>http://localhost/vmydoc</location>
        <title class="SH">Data Five</title>

    </track>
</trackList>

Le résultat final devrait ressembler à ceci:

<trackList>

    <track>
        <location>http://localhost/vmydoc</location>
        <title class="SH">Data Three</title>

    </track>

    <track>
        <location>http://localhost/vmydoc</location>
        <title class="SH">Data Five</title>

    </track>

    <track>
        <location>http://localhost/vmydoc</location>
        <title class="STD">Data Four</title>

    </track>
    <track>
        <location>http://localhost/vmydoc</location>
        <title class="STD">Data Two</title>
    </track> 
</trackList>

J'ai essayé ce qui suit, mais il ne fonctionne pas.

<xsl:for-each-group select="title" group-by="@class">

    <xsl:for-each select="current-group()">
        <xsl:value-of select="@class" />
    </xsl:for-each>

</xsl:for-each-group>

Grâce.

La première location et title dans votre échantillon d'entrée n'ont pas <track> autour d'eux. C'est qu'un copier/coller de l'erreur ou d'une caractéristique de votre entrée XML?
C'est certainement un copier/coller de l'erreur. Ils doivent être enveloppés dans des <suivre></track>. J'ai Juste corrigé.

OriginalL'auteur ManUO | 2013-07-18