我環顧了網站,但無法找到特定XSL問題的解決方案。如果你認識到這是一個重複的帖子,我表示歉意,並將感謝您指出正確的方向。限制排序的條件xsl:for-每個結果爲n個值
基於下面相對簡單的XML數據集,我想按項目創建一個表,但也限制項目更像'最新'10那樣的'易消化'項目。
+---------------------------------------------------+
| Alpha | Beta |
+---------------------------------------------------+
| Log_20091014_0900PM.xml | Log_20091015_0900PM.xml |
| Log_20091013_0900PM.xml | ... |
| ... | |
+---------------------------------------------------+
| Gamma | Delta |
+---------------------------------------------------+
| ... | ... |
+---------------------------------------------------+
形式的XML源數據:
<LogResults>
<Result>
<Project>Alpha</Project>
<Data>Log_20091013_0900PM.xml</Data>
<Name>Log_20091013_0900PM.xml</Name>
</Result>
<Result>
<Project>Alpha</Project>
<Data>Log_20091014_0900PM.xml</Data>
<Name>Log_20091014_0900PM.xml</Name>
</Result>
<Result>
<Project>Beta</Project>
<Data>Log_20091015_0900PM.xml</Data>
<Name>Log_20091015_0900PM.xml</Name>
</Result>
<Result>
<Project>Gamma</Project>
<Data>Log_20091016_0900PM.xml</Data>
<Name>Log_20091016_0900PM.xml</Name>
</Result>
<Result>
<Project>Delta</Project>
<Data>Log_20091019_0900PM.xml</Data>
<Name>Log_20091019_0900PM.xml</Name>
</Result>
<Result>
<Project>Delta</Project>
<Data>Log_20091020_0900PM.xml</Data>
<Name>Log_20091020_0900PM.xml</Name>
</Result>
...
</LogResults>
我能顯示ALL結果與以下XSL的適當改變每個項目:
<xsl:for-each select="LogResults/Result">
<xsl:sort select="Data" order="descending" />
<xsl:if test="(Project='Alpha')">
<li>
<a style="font-size:11pt;">
<xsl:attribute name="href">
Alpha/<xsl:value-of select="Data" />
</xsl:attribute>
<xsl:value-of select="Name" />
</a>
</li>
</xsl:if>
</xsl:for-each>
問題:
是否可以將結果限制爲「最新」10(或20 ...)?如果是的話,你會如何建議這樣做?
我試圖以下列方式使用position()
例如
<xsl:for-each select="(LogResults/Result) [position < 11]">
或
<xsl:if test="(Project='Alpha')">
<xsl:for-each select=". [position < 11]">
<li>
<a style="font-size:11pt;">
<xsl:attribute name="href">
Alpha/<xsl:value-of select="Data" />
</xsl:attribute>
<xsl:value-of select="Name" />
</a>
</li>
</xsl:for-each>
</xsl:if>
但到目前爲止,我無法得到它的工作。當然,因爲它現在更多的痕跡和錯誤。
非常感謝您閱讀本文以及任何潛在的建議。 -T
問得好(+1)。查看我的答案以獲得詳細解決方案。 – 2010-08-17 21:34:35