L'operatore Sort di XSLT
All'interno dell'elemento template vi sono una varietà di istruzioni che servono:
- per modificare la lista di nodi;
- per scrivere frammenti dell'albero di destinazione.
- elementi letterali
- <xsl:value-of>
- <xsl:element>
- <xsl:attribute>
- <xsl:text>
- <xsl:processing-instruction>
- <xsl:comment>
- <xsl:namespace-alias>
- <xsl:copy>
- <xsl:number>
- <xsl:apply-templates>
- <xsl:for-each>
- <xsl:if>
- <xsl:choose>
- <xsl:sort>
Esso può essere soltanto figlio di un <xsl:applytemplates> o di un <xsl:for-each>. Gli elementi <xsl:sort> possono annidarsi per realizzare chiavi primarie, secondarie, ecc. per il sort.
(L'articolo continua più sotto...)
');
L'operatore <xsl:sort> ha vari attributi:
- Select - l'espressione in base alla quale fare il sort;
- Data-type - il tipo di dato da ordinare (numero o testo o altro);
- Order - il tipo ascendete o discendente di ordine;
- Case-order - come trattare le maiuscole e le minuscole.
<xsl:template match=”lista">
<ul>
<xsl:apply-templates select=“persona”>
<xsl:sort select=”cognome"/>
<xsl:sort select="nome"/>
</xsl:apply-templates>
</ul>
</xsl:template>
<xsl:template match=”persona">
<ul>
<li>
<xsl:value-of select=”nome"/>
<xsl:text>
</xsl:text>
<xsl:value-of select=”cognome"/>
</li>
</ul>
</xsl:template>
Tale documento XSLT non fa altro che ordinare una lista di persone (con gli attributi nome e cognome) prima in base al cognome ed a parità di cognome in base al nome. Per default (come nell'esempio...), salvo indicazione diversa (attraverso l'attributo ORDER), l'ordinamento è crescente.







