プログラミング基礎 II

第十一回 (2008年 12月22日)

繰り返し

http://www.sw.it.aoyama.ac.jp/2008/PB2/lecture11.html

Martin J. Dürst

duerst@it.aoyama.ac.jp

AGU

© 2006-8 Martin J. Dürst 青山学院大学

今日の予定

これからの予定

前回の復習

先回の演習

提出: 12月19日 (金曜日) 22:00 までに Moodle に投稿

本ごとの郵送料を計算する。注文のリストにそのための新しい欄を作る。本の全体の値段に足す。

郵送料 (本一冊あたり、円)
本の数
> 50 > 2 ≤ 2
値段 (円) > 10,000 0 500 500
> 2000 100 300 500
> 500 100 200 300
≤500 75 150 200

本ごとの郵送料を計算する。注文のリストにそのための新しい欄を作る。本の全体の値段に足す。

正解の一例: ordersShipping.xsl

繰り返しの目的と概要

自然な繰り返し

明記的な繰り返し: <xls:for-each>

<xsl:for-each> と現在のノード

<xsl:for-each>position() など

XSLT の処理のパターン

<xsl:attribute>

演習 1

提出: 12月26日 (金曜日) 22:00 までに Moodle に投稿

本をテーブルとして出力する変換ファイルを次のように変更する:

演習 2

提出: 12月26日 (金曜日) 22:00 までに Moodle に投稿

今まで使った簡単な変換ファイルをベースに、<xsl:apply-templates> を少しずつ <xsl:for-each> (や <xsl:value-of>) に変換。

注意: この演習はあくまで <xsl:apply-templates><xsl:for-each> の関係や複数の <xsl:for-each> の限界を実感するためのもので、このような「団子変換」をこの演習以外に絶対使って欲しくない。