人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

XSLで作った変数を、1プラスするみたいな処理をしたいのですが、分かる人はいないでしょうか?

例を出して説明すると、
<xsl:variable name="number" select="0"/>
で作った$numberという変数を

$number++;
して、
<xsl:value-of select="$number" />
で、出力したいと思っています。

分かる人がいましたら教えてください。
お願いしますm(_ _)m

●質問者: hiyarihatto
●カテゴリ:インターネット ウェブ制作
✍キーワード:Number XSL プラス 変数
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● lains_you
●60ポイント ベストアンサー

xsl:variableは、一般的なプログラミングにおける変数のように可変ではなく、一度代入した値を変更することはできなかったと思います。

そのため、インクリメントのような処理を行う際は、テンプレートを利用することになります。


テンプレートによるインクリメントサンプル

下記を適用すると0?9までの値が出力されます。

xsl:with-paramでtestテンプレートにtime変数を渡し、それが0になるまで再帰的にtestテンプレートを呼び出します。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:variable name="number" select="0"/>
<xsl:template match="/">
<xsl:call-template name="test">
<xsl:with-param name="time" select="10"/>
<xsl:with-param name="value" select="$number"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="test">
<xsl:param name="time"/>
<xsl:param name="value"/>

<xsl:value-of select="$value" />
<xsl:if test="$time - 1 != 0">
<xsl:call-template name="test">
<xsl:with-param name="time" select="$time - 1"/>
<xsl:with-param name="value" select="$value + 1"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

念のため、単純に+1するだけのものも記述します。

<xsl:variable name="number" select="0"/>
<xsl:value-of select="$number + 1" />
◎質問者からの返答

ソース参考にさせていただきました。

結構手間がかかるみたいですね…

XMLで番号付けるほうがぜんぜん楽そうですね。

ありがとうございましたm(_ _)m

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ