Begränsa listade poster XSLT

By Markus Johansson
2009-09-06

Ibland vill man tex att Umbraco ska visa de 10 senaste posterna i en nod eller kanske de 10 senaste av en speciell document type.

Så här kan man använda XSLT för att begränsa antalet poster som lämnas från en for-each-loop.

<xsl:for-each select="$currentPage/node">

<xsl:sort select="@sortOrder" order="descending"/>

    <!-- xsl-if kollar att positionen är under 11 dvs, högst 10. 
    Om så inte är fallet skrivs inget ut. -->

   <xsl:if test="position() < 11">

       <xsl:value-of select="@nodeName"/><br/>
   </xsl:if>
</xsl:for-each>

 

Såhär fungerar det:

<xsl:sort> Används för att sortera resultatet. Select-parametern anger efter vilket värde det skall sorteras och order-parametern anger om det skall vara fallande eller stigande ordning (ascending, descending).

 

XSLT-funktionen Position() returnerar nummet på den post som just nu bearbetars i loopen. Med hjälp av <xsl:if> anger vi att endast de fem första posterna ska visas, dvs poster som har ett värde under 10.

Tecknen &lt; och &gt; betyder samma sak som < och >, dessa tecken är skyddade i XSLT och måste därför ersättas med &gt; och &lt&, dvs greater than och lower than.






More blog posts



15 januari 2021

Umbraco and MiniProfiler