2009-09-13 4 views
3

Ce code sélectionne les nœuds, je veux travailler sur ...:nœuds tri XLST

<xsl:variable name="rootTextpageNode" 
    select="$currentPage/ancestor-or-self::node [@level = 2 and 
      @nodeTypeAlias = 'CWS_Textpage']" /> 

Comment puis-je mettre une sorte/orderby là-dedans, pour que les articles avec les nouveaux CreatedDate sont affichés en premier?

J'utilise le kit de démarrage du SCF, et la nécessité de modifier l'ordre des éléments affichés dans SubNavi.xslt

Répondre

5

Vous pouvez faire une sorte dans la première ligne après une for-each, comme ceci:

<xsl:for-each select="$rootTextpageNode"> 
<xsl:sort select="@createDate" order="descending" /> 
    <xsl:value-of select="@nodeName" /> 
</xsl:for-each> 
4

Je ne sais pas si vous pouvez ajouter un tri à cette affectation de variable - généralement, vous triez soit lorsque vous appliquez un modèle, ou lorsque vous effectuez une foreach:

<xsl:template match="employees"> 
    <xsl:apply-templates> 
     <xsl:sort select="salary"/> 
    </xsl:apply-templates> 
    </xsl:template> 

ou

<xsl:for-each select="catalog/cd"> 
    <xsl:sort select="artist"/> 
    <tr> 
    <td><xsl:value-of select="title"/></td> 
    <td><xsl:value-of select="artist"/></td> 
    </tr> 
</xsl:for-each> 

Voir Sorting XSLT et Where to put the Sort information

Marc