プログラミング基礎 II

第十回 (2006年12月 11日)

分類

http://www.sw.it.aoyama.ac.jp/2006/PB2/lecture10.html

Martin J. Dürst

duerst@it.aoyama.ac.jp

O 棟 529号室

AGU

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

今日の予定

先週の復習

先週の演習

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

order.xml の注文を HTML で分かりやすいように変更する。注文票に本の題名、著者、値段などをbooks.xml から引用し、本ごとの小計 (冊の数 * 単価) を計算し、表で出力する。

注意: books.xml を変更しましたので、更新してください。

条件: 同じ処理を繰り返さないように、そして XSLT が読みやすいように、変数を一つだけではなく三つぐらい使ってください。

ヒント: 途中までの変換ファイル: myorders.xsl

正解の例: orders.xsl

演習についての質問

質問: 出力に <td><td>3</td></td> などができる。なぜですか。

答え: テンプレートを適用するうちに複数回 <td>...</td> に「遭遇」した。

例:

<td><xsl:apply-templates select='@number'/></td>
...
<xsl:template match='@number'>
  <td><xsl:value-of select='.'/></td>
</xsl:template>

解決策: どちらかの <td></td> をとる

参考: <td><xsl:value-of select='@number'/></td> でも書けます。

分類の目的

自然な分類

明記的な分類: <xls:if>

明記的な分類: <xls:choose>

演習 1

(提出不要)

変換ファイル ordersDiscount.xsl の割引の計算を <xsl:if> から <xsl:choose> に変更する。

注意点:

演習 2

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

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

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

ヒント: