2011-02-18 56 views
1

我想執行一些xml數據轉換爲html的xslt轉換。有3項任務,這種轉換需要做的,它們是:xslt轉換與計數

  • 按日期排序數據
  • 輸出只有那些具有一定的ID
  • 輸出只有那些項目

所以3例如我的數據片段看起來像這樣:

<program id="brand_id_1"> 
    <date>2011-10-25</date> 
    <some_info>This is some info</some_info> 
</program> 
<program id="brand_id_2"> 
    <date>2011-10-22</date> 
    <some_info>This is some info</some_info> 
</program> 
<program id="brand_id_1"> 
    <date>2011-10-27</date> 
    <some_info>This is some info</some_info> 
</program> 

我可以按日期排序,我可以確保我只輸出那些id爲brand_id_1的人,但是一旦我做了3次,我該如何停止輸出?

任何幫助,非常感謝! 海倫

回答

2

排序,然後檢查位置,例如下面的示例中:

<xsl:for-each select="//program[@id = 'brand_id_1']"> 
    <xsl:sort select="date" data-type="text"/> 
    <xsl:if test="position() &lt; 4"> 
    <xsl:copy-of select="."/> 
    </xsl:if> 
</xsl:for-each> 
+0

+1黨!打我1分鐘......但我先糾正了示例數據;-) – Filburt 2011-02-18 11:49:08

0

您可以使用模板和遞歸來有效地創建一個用於然而環路XSLT實際上只是轉換工具的最佳的事情,如果你可以是修改源XML

看到這裏的答案xsl recursive loop node by index