2012-02-03 24 views
0

我在堆棧...有人可以幫助我嗎? 這裏的情況是,我與代碼的.xsl文件:XML變量和雙重爲每個

  <xsl:for-each select="discovery_channels/channel">     
           <xsl:variable name="my-var" select="$my-var +20" /> 
           <xsl:for-each select="shows/show"> 

            <xsl:value-of select="$my-var"/> 
            <xsl:if test="$my-var = substring(continuance/start_at,1,2)"> 
             <tr><td style="vertical-align: top;"><div style="border: 7px solid #002748;"> 
              <xsl:call-template name="picture"> 
               <xsl:with-param name="n" select="@name_show"></xsl:with-param> 
              </xsl:call-template> 
             </div></td></tr> 
             </xsl:if> 

           </xsl:for-each> 
          </xsl:for-each> 

我想使雙循環,我的意思是:如果我有「作秀」 3倍的數據,我想搜索3 * 3次=總共9次,因爲我想搜索3次匹配「00」字符串,之後3次「01」等等到「24」(它是幾小時)。我有一個可靠的,每3次遞增一次,應該是......但是雙重的 - 每個都不起作用。

有人可以給我一個建議,我應該如何實現這個想法? 非常感謝!

+0

xslt是一種函數式語言,變量是不可變的,也就是說一旦它們被設置,它們就不能被改變。你可能以錯誤的方式接近問題。如果您發佈了您的輸入XML樣本以及您的預期輸出結果,那麼這將有很大幫助,因爲我們可以幫助實現「功能」方法。謝謝。 – 2012-02-03 12:09:38

+0

@Jordan,發佈你的xml併發布你想要的東西..會盡力幫助你..你可以通過使用params回顧模板來避免你的覆蓋變量的想法。不要責怪'',它和你使用的方式一樣聰明。 :) – 2012-02-03 14:03:25

+0

親愛的約旦,你忘記給我們一些最基本的信息,例如:1.源XML文檔; 2.確切的想要的結果; 3.轉型必須實施的規則。請編輯問題並提供所有必要的數據。 – 2012-02-03 14:24:12

回答

0

它總是很難猜測有人試圖通過研究未能做到這一點的代碼做的,但我的猜測是,你可能能夠實現你想要的改變荒謬的聲明

<xsl:variable name="my-var" select="$my-var +20" /> 

類似於

<xsl:variable name="my-var" select="position() * 20" />