2012-02-03 9 views
0

私はスタックしています...誰かが私を助けることができますか?ここで 状況ですが、私はコードでの.xslのドキュメントがあります。私は私が何を意味するか、ダブルループを作りたいXML変数とdouble for each

  <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回 "00"の文字列を3回検索した後、 "01"の3回を検索してから、 "24"(時間です)まで検索したいので、3 * 3回=合計9回。私は3回ごとにインクリメントされますが、...となるはずですが、2倍はそれぞれ機能しません。

誰かが私にアドバイスを与えることができますか、アイデアをどのように実装する必要がありますか? ありがとう!

+0

xsltは関数型言語であり、変数は変更不可能であり、一度設定されると変更することはできません。おそらく間違った方法で問題に近づいています。あなたが入力XMLのサンプルと期待される出力を投稿していれば、「機能的」なアプローチを助けることができるので、多くの助けになります。ありがとう。 –

+0

@Jordan、ur ur xmlを投稿し、あなたが手に入れたいものを投稿しよう。あなたが変数を上書きするあなたの考えは、paramsを使ってテンプレートを呼び出すことによって回避することができます。また、 'を非難するのではなく、あなたの使う方法ほど賢明です。 :) –

+0

親愛なるヨルダン、あなたは私たちにいくつかの最も重要な情報を与えることを忘れてしまった:1.ソースXML文書。正確な欲しい結果。 3.変換が実装しなければならないルール。質問を編集し、必要なすべてのデータを提供してください。 –

答えて

0

それは、誰かがそれを行うには失敗したコードを研究することによって、やろうとしているものを推測することは常に難しいですが、私の推測では、無意味な宣言

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

を変更することにより、あなたはあなたが望むものを達成することができるかもしれないということです