2009-09-13 2 views
3

Этот код выбирает узлы, я хочу работать на ...:Сортировка узлов в XLST

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

Как я могу поставить сортировки/OrderBy там, поэтому детали с новой createdDate отображаются в первую очередь?

Я использую стартовый комплект CWS, и нужно изменить порядок элементов, отображаемых в SubNavi.xslt

ответ

5

Вы можете сделать то в первой строке после того, как за-каждый, например, так:

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

Не уверен, что если вы можете добавить сортировку этой переменной уступке - обычно, сортировке либо при применении шаблона, или когда вы делаете Еогеасп:

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

или

<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> 

См Sorting XSLT и Where to put the Sort information

Марк