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
C'est certainement un copier/coller de l'erreur. Ils doivent être enveloppés dans des <suivre></track>. J'ai Juste corrigé.
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
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire comme suit:
Lorsqu'il est exécuté sur votre entrée d'échantillon, le résultat est:
Que faire si ils sont dans un seul smartform où vous ne pouvez pas avoir plusieurs valeurs de champ, comme ici: stackoverflow.com/questions/33372683/...
OriginalL'auteur JLRishe