在XSLT中对节点进行排序

时间:2009-09-13 12:49:57

标签: xslt umbraco

此代码选择节点,我想处理......:

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

如何在那里放置排序/订单,所以首先显示带有较新createdDate的项目?

我正在使用CWS入门套件,需要更改SubNavi.xslt中显示的项目的顺序

2 个答案:

答案 0 :(得分:5)

您可以在for-each之后的第一行进行排序,如下所示:

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

答案 1 :(得分:4)

不确定是否可以为此变量赋值添加排序 - 通常,您在应用模板时或在执行foreach时进行排序:

<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 XSLTWhere to put the Sort information

马克