• 締切済み

xsl:for-each関数の回転数を変数でカウントしたい

いろいろと調べて、XSLTではxsl:variableとparamを使って変数を使えるようなのですが、これらは変更は出来ないようですね(paramはちょっと違うようですが)。 xsl:for-each関数の回転数を変数でカウントするといった使い方をしたいのですが、変数の値が変えれない為に実現できません。 代わりの方法か変数の値を変えられる方法を知っている方はいらっしゃいますか?

noname#17376
noname#17376
  • XML
  • 回答数1
  • ありがとう数4

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

<xsl:value-of select="position()" /> で処理しているノードの位置を数値で得ることができます。

noname#17376
質問者

補足

ちょっと書き方が悪かったです。 xsl:ifで、引っかかった物の数を調べたいのですが。

関連するQ&A

  • スタイルシートのfor-each select=に変数を使用したい

    お世話になります。 <xsl:param name="A" select="1000"> ・ ・ ・ <xsl:template name="B"> ・ ・ ・ <xsl:for-each select=".//1000"> -(1) </xsl:template> <xsl:template match="1000"> -(2) </xsl:template> (1) (1)の箇所の「1000」を上で宣言したAを使用したく、 <xsl:for-each select="concat('.//',$A")>  など色々試したのですが、うまくいきませんでした。 (2) (2)の箇所を「A」の変数に色々な形で置き換えてもうまくいきませんでした。 上記2点、を変数を使用して指定したいのですが、どのようにすれば実現できますでしょうか? 大変お手数とは思いますがよろしくお願いします。

    • ベストアンサー
    • XML
  • xslで変数をxpathに使いたい

    初めて、質問させていただきます。よろしくお願いします。 早速ですが、xslの中で、 <xsl:variable name="hensu">名前</xsl:variable> のように、変数を宣言し、その変数を、xpathとして以下のように使いたいのですが このままでは、文字列(名前)で表示されてしまいます。 <xsl:value-of select="$hensu" /> 変数をxpathに変換する方法はありますでしょうか?

    • 締切済み
    • XML
  • XSLTでtest.xmlファイルのccc要素の値を取得する場合は以下

    XSLTでtest.xmlファイルのccc要素の値を取得する場合は以下(1)、(2)のようにやればいいのですが、(2)の箇所のパス(testを)動的(可変)にすることはできるのでしょうか? (1)document関数によりxmlファイルを変数に格納  <xsl:variable name="aaa" select="document('test.xml')"/> (2)上記変数からパスを指定して値を取得  <xsl:variable name="bbb" select="$aaa/test/ccc"/> test.xml <test> <ccc>bbb</ccc> </test> 例)以下は間違ってると思いますがパスに変数を使用して値を取得することは可能でしょうか?   <xsl:variable name="ccc" select="'test'"/> // 変数cccにtestという文字列を格納   <xsl:variable name="bbb" select="$aaa/$ccc/ccc"/> //test/cccがパスのつもり

    • 締切済み
    • XML
  • xsl内の変数計算方法とパラメータ取得方法

    xsl+xml+cssを使い、1ページに一定数の画像を表示させ、 ページングさせるxslを作っています。 わからないことは (1)変数の計算方法について  ページの先頭表示データを以下のように定義しました。  <xsl:variable name="TopData" select="1" /> nextボタン押し下げ時に1ページ先の先頭表示データを以下のように計算したいのですが、  <xsl:variable name="TopData" select="$TopData=$TopData+$PageData" />  画面にfalseと表示されてしまいました。  また、backボタン押し下げ時に1ページ前の先頭表示データを以下のように計算したのですが、  ブラウザにエラーが表示されてしまいました。  <xsl:variable name="TopData" select="$TopData=$TopData-$Page" /> (2)urlのパラメータを取得する方法について  nextボタンを以下のように記述しました。 <a href="photo.xml?TopData={$TopData}"> <img width="30" height="30" src="img/aaa.gif" /> </a>  ここで与えたパラメータを、同じxlstファイルで取得し、  値を使うにはどのように記述したらよろしいでしょうか? ご教授おねがいいたします。

    • ベストアンサー
    • XML
  • jQueryのforとeachの変数参照の違い

    jQueryを学習中の者です。 現在、パララックス効果のサンプルコードを参考にしているのですが、理解できずに困っています。 その内容は各ブロック要素をeachでループさせ、ループの中でウインドウのスクロールイベントを登録しコールバック関数で細かい設定をしていくというものです。 理解できないというのは、以前 javasctiptでのfor文による要素へのイベント登録で「イベントでも渡す関数は参照のみです。新たに関数を自動で作成してくれるような事は決してありません。」と説明が有り、コールバック関数内に変数を使うとイベント発生時に変数を参照した時、ループの最後で格納した値になるので、この事は理解し注意もするようにしていました。 しかし、今回のサンプルコードではforとeachの違いはあるけれど、コールバック関数に変数を使っているのに、その変数が別々の値を持っています。 最初はjQueryとjavascriptの挙動の違いかなと思い、以前のfor文のコードを下の様にjQueryで書き替えても結果は一緒でした。 取り留めの無い文章になってしまいましたが、どうして下の2つコードが違う結果になるのかを解り易く説明していただけませんでしょうか。 <table border="1"> <tr><td></td><td></td>...</tr> ... </table> <script> (1)//これだと、駄目…どのtdのイベントでも最後のtdが反応 $(function(){ for(var i =0 ,len=$('td').length;i < len; i++){   var td=$('td').eq(i);   td.mouseover(function(){ td.css('background-color','red');});   td.mouseout(function(){ td.css('background-color','');});  } }); (2)//これだとOK…ちゃんと各tdが反応する。 $(function(){  $('td').each(function(index,elem){   var td=$(elem);    td.mouseover(function(){ td.css('background-color','red');});    td.mouseout(function(){ td.css('background-color','');});  }); }); </script> *今回の質問はどう対処したら良いのかという類ではありません。 両方とも変数 td にjqueryオブジェクトを格納して、同じ形式でイベント登録しているのに違う結果になるという事が壁に成ってます。 ネットでいくら調べても構文の説明やサンプルコードは溢れていますが、この様な事例に触れた物が皆無です。 forとeachの違いなんて基本的なことで恥ずかしいのですが、お願いします。

  • 【VBA】for each文でListbox値取得

    VBA7.1でfor each文を使い、Listbox(Lst1)の全ての値を 取得したいと思っています。 For Each 変数 In コレクションや配列 のコレクションや配列には何を指定したらよいでしょうか。 よろしくお願いいたします

  • oreachで変数を用意せずにカウントする方法

    PHPのforeachで変数を用意せずに何週目なのかのカウント数を取得する事は可能でしょうか? 探しても見つからなかったのですが、そういった関数があるのでしょうか? それとも、やはり毎回専用の(もしくは使い回しの)変数を用意するしかないのでしょうか?

    • ベストアンサー
    • PHP
  • 文字列の取得

    XSLTで、次のような文字列の後ろの部分だけを変数に入れたいのですが、どうすればよいでしょうか? 1または2 → 2 3 → 3 <xsl:choose> <xsl:when test="contains(val,'または')=true()"> <xsl:variable name="data" select="substring-after(val,'または')"/> ・・・・・・ のようにしてみましたが、 変数またはパラメータ 'data' への参照が解決できません。変数またはパラメータが定義されていないか、スコープにない可能性があります。 というエラーになってしまいました。 よろしくお願いします。 環境:Win2000+MSXML+IE6

    • ベストアンサー
    • XML
  • delphiで、タイマー関数の中で、変数の初期値を入れ、カウントする場合。

    delphiで、タイマーで関数を作るとします。 正式な呼び名が分からないのですが、いわゆるTimer1Timerこれです。 1秒ごとに、0からカウントする機能をつけたいのですが、変数の型を宣言する所に、変数を入れると、注意されます。 下記の方法だと、変な値が入ります。 関数の中に入れてしまうと、最初に入れた値に、毎回初期化されてしまいます。 こんな事を考慮に入れていない訳がないと思うのですが、当方に知識としてありません。 どうか、よろしくお願いします。 あ、もちろん、グローバル変数や、外部から持ち込むのは、やり方として分かるのですが、それが正統的なやり方ですか? label3に0を入れて、読み取って、1足して、label3に返して・・・の繰り返し、とか。 procedure TForm1.Timer1Timer(Sender: TObject); var  Count : Integer ; begin  Count := Count +1 ;  //Inc(Count,1);  label2.Caption := IntToStr(Count) ; end;

  • XSLTでの外部XMLファイルの読み込みについて。

    XSLTについて質問がございます。 下記のように、document関数を用いて外部のxmlを取り込んでいるのですが、 もし、そのxmlファイルが存在しなかった場合はエラーとなってしまいます。 この時、対象のxmlファイルが存在するか否かを、XSLTで調べる事は可能なのでしょうか? boolean関数を用いてみたりしたのですが、ファイルがない場合はやっぱりエラーになってしまいます。 どなたかご教授願います。 <!-- STYLESHEET --> <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:import href="xsl1.xsl"/> <xsl:param name="doc" select="document('../XML/import.xml')"/> </xsl:stylesheet>

    • ベストアンサー
    • XML

専門家に質問してみよう