Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

Другие советы

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

Марк

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top