2017-12-01 12 views
0

I XMLファイルを読み込んで、各子ノードにtext型の入力要素を作成するXSLコードを記述しました。次のXMLファイルを考えてみましょう。2つの入力ボックスは、xslでカウンタを設定してtabIndexを設定する

のように作成されます

ラベル(com 1):入力ボックス---------------------ラベル(com 2):入力ボックス

ノードcの下に任意の数の子ノードを置くことができ、cのような任意の数のノードを置くことができます。 HTMLページの1つの行がcの下にある子ノードのために満たされると、別の行が作成されます。ユーザーは、次の行の入力ボックスではなく、同じ行の1つの入力ボックスから次の入力ボックスに移動できるようにします。

XSLを使用して生成された各入力要素のタブインデックスを設定します。次の親要素の子ノードのタブインデックスを設定するために、親ノードの下にある子ノードの数を数えます。

<Base>   
      <C> 
       <Label>Af</Label> 
       <Column> 
        <Label>Com 1</Label> 
        <Max>200</Max>     
       </Column> 
       <Column> 
        <Label>Com 2</Label> 
        <max>100</max>     
       </Column> 
      </C> 

      <D> 
       <Row> 
        <Column> 
         <Label>A</Label> 
         <max>40</max> 
        </Column> 
        <Column> 
         <Label>B</Label> 
         <max>40</max>      
        </Column> 
        <Column> 
         <Label>C</Label> 
         <max>40</max>      
        </Column> 
        <Column> 
         <Label>D</Label> 
         <max>40</max>      
        </Column> 
       </Row> 
       <Row> 
        <Column> 
         <Label>A</Label> 
         <max>40</max>      
        </Column> 
        <Column> 
         <Label>B</Label> 
         <max>40</max>      
        </Column> 
        <Column> 
         <Label>C</Label> 
         <max>40</max>      
        </Column> 
        <Column> 
         <Label>D</Label> 
         <max>40</max>      
        </Column> 
       </Row> 
       <Row> 
        <Column> 
         <Label>A</Label> 
         <max>40</max>      
        </Column> 
        <Column> 
         <Label>B</Label> 
         <max>40</max>      
        </Column> 
        <Column> 
         <Label>C</Label> 
         <max>40</max>      
        </Column> 
        <Column> 
         <Label>D</Label> 
         <max>40</max>      
        </Column> 
       </Row> 
       <Row> 
        <Column> 
         <Label>A</Label> 
         <max>340</max>      
        </Column> 
        <Column> 
         <Label>B</Label> 
         <max>40</max>      
        </Column> 
        <Column> 
         <Label>C</Label> 
         <max>40</max>      
        </Column> 
        <Column> 
         <Label>D</Label> 
         <max>40</max>      
        </Column> 
       </Row> 
       <Row> 
        <Column> 
         <Label>A</Label> 
         <max>40</max>      
        </Column> 
        <Column> 
         <Label>B</Label> 
         <max>40</max>      
        </Column> 
        <Column> 
         <Label>C</Label> 
         <max>40</max>      
        </Column> 
        <Column> 
         <Label>D</Label> 
         <max>40</max>      
        </Column> 
       </Row> 
       <Row> 
        <Column> 
         <Label>A</Label> 
         <max>340</max>      
        </Column> 
        <Column> 
         <Label>B</Label> 
         <max>40</max>      
        </Column> 
        <Column> 
         <Label>C</Label> 
         <max>40</max>      
        </Column> 
        <Column> 
         <Label>D</Label> 
         <max>40</max>      
        </Column> 
       </Row> 
       <Row> 
        <Column> 
         <Label>A</Label> 
         <max>40</max>      
        </Column> 
        <Column> 
         <Label>B</Label> 
         <max>40</max>      
        </Column> 
        <Column> 
         <Label>C</Label> 
         <max>40</max>      
        </Column> 
        <Column> 
         <Label>D</Label> 
         <max>40</max>      
        </Column> 
       </Row> 
       <Row> 
        <Column> 
         <Label>A</Label> 
         <max>40</max>      
        </Column> 
        <Column> 
         <Label>B</Label> 
         <max>40</max> 

        </Column> 
        <Column> 
         <Label>C</Label> 
         <max>40</max> 

        </Column> 
        <Column> 
         <Label>D</Label> 
         <max>40</max> 

        </Column> 
       </Row> 
       <Row> 
        <Column> 
         <Label>A</Label> 
         <max>40</max> 

        </Column> 
        <Column> 
         <Label>B</Label> 
         <max>40</max> 

        </Column> 
        <Column> 
         <Label>C</Label> 
         <max>40</max> 

        </Column> 
        <Column> 
         <Label>D</Label> 
         <max>40</max>      
        </Column> 
       </Row> 
       <Row> 
        <Column> 
         <Label>E</Label> 
         <max>40</max>      
        </Column> 
       </Row> 
       <GColumn> 
      </Base> 

は、XSLとして、私は、変数を設定し、ため、ループごとに1つの実行後、それをインクリメントする方法を見つけることができませんでした関数型言語であること。 tabindexを設定できる要素の数を維持するには、いくつかの助けが必要です。あなたは、ループ内の要素をカウントする必要はありません

答えて

0

、あなたはposition()

<xsl:variable name="itempos" select="position()"/> 

でのfor-eachループ内の要素のインデックスを取得し、count()

と子供の要素の合計数を取得することができます
<xsl:variable name="itemcount" select="count(/Base/c/*)"/> 
関連する問題