Сортировка узлов в XLST - PullRequest
       21

Сортировка узлов в XLST

3 голосов
/ 13 сентября 2009

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

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

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

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

Ответы [ 2 ]

5 голосов
/ 13 сентября 2009

Вы можете выполнить сортировку в первой строке после for-each, например так:

<xsl:for-each select="$rootTextpageNode">
<xsl:sort select="@createDate" order="descending" />
    <xsl:value-of select="@nodeName" />
</xsl:for-each>
4 голосов
/ 13 сентября 2009

Не уверен, что вы можете добавить сортировку к этому назначению переменной - обычно вы сортируете либо при применении шаблона, либо при выполнении 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>

См. Сортировка XSLT и Где разместить информацию о сортировке

Марк

...