2008-09-08 7 views
12

sagen, ich habe diese xml angegebene Dateiapply-templates in umgekehrter Reihenfolge

<root> 
    <node>x</node> 
    <node>y</node> 
    <node>a</node> 
</root> 

und ich möchte, dass die folgenden

angezeigt werden
ayx 

mit etwas Ähnliches wie

<xsl:template match="/"> 
    <xsl:apply-templates select="root/node"/> 
</xsl:template> 
<xsl:template match="node"> 
    <xsl:value-of select="."/> 
</xsl:template> 

Antwort

3

Sie kann dies tun, mit xsl: sort. Es ist wichtig, den Datentyp = "number" zu setzen, da sonst die Position als String sortiert wird, Ende also würde der 10. Knoten vor dem 2. betrachtet werden.

<xsl:template match="/"> 
    <xsl:apply-templates select="root/node"> 
     <xsl:sort 
      select="position()" 
      order="descending" 
      data-type="number"/> 
    </xsl:apply-templates> 
</xsl:template> 
<xsl:template match="node"> 
    <xsl:value-of select="."/> 
</xsl:template>