http://www.sw.it.aoyama.ac.jp/2008/PB2/lecture12.html
© 2007-9 Martin J. Dürst 青山学院大学
<xsl:apply-templates>
で自然に繰り返す<xsl:for-each>
で明記的な繰り返しが必要本をテーブルとして出力する変換ファイルを次のように変更する:
<xsl:attribute>
を使用する正解例: tableStripes.xsl
,
その出力: resultStripes.html
正解例: tableClump.xsl
(出力は <xsl:apply-templates>
を使ったものと変わらない)
1 月 26日 (月曜日) 3時限 (13:10-14:10)
過去の問題: 2007年度のミニテスト、2006年度の期末試験
<xsl:apply-templates>
などが使えない)<xsl:template>
見たいなものを使いたい)<xsl:template>
要素を使う@match
の代わりに @name
を使う<xsl:template name='greeting'> <p>Hello <strong>dear customer</strong>!</p> </xsl:template>
<xsl:call-template>
要素を使う@name
で呼びたいテンプレートを指定<xsl:template>
の中:
出力の一部を指定<xsl:variable>
の中:
変数の一部を指定<xsl:template ...> ... <xsl:call-template name='greeting'/> ... </xsl:template>
parameter (ひきすう)
<xsl:call-template>
の中に
<xsl:with-param>
要素を使う<xsl:template>
の中 (一番最初) に
<xsl:param>
を使う<xsl:with-param>
要素で @name
で引数の名前、@select
又は要素の内容で値を指定<xsl:param>
要素で@name
で引数の名前、必要であれば @select
又は要素の内容で即定値を指定<xsl:template name='greeting'> <xsl:param name='who' select='"customer"'/> <p>Hello <strong>dear <xsl:value-of select='$who'/></strong>!</p> </xsl:template> ... <xsl:call-template name='greeting'> <xsl:with-param name='who'>青山 例子</xsl:with-param> </xsl:call-template>
<xsl:template name='階乗'> <xsl:param name='n'/> <xsl:choose> <xsl:when test='$n = 1'>1</xsl:when> <xsl:otherwise> <xsl:variable name='n1'> <xsl:call-template name='階乗'> <xsl:with-param name='n' select='$n - 1'/> </xsl:call-template> </xsl:variable> <xsl:value-of select='$n * $n1'/> </xsl:otherwise> </xsl:choose> </xsl:template>
<div>
の中の
<div>
があって、<xsl:apply-templates>
を使う場合<xsl:param>
のもう一つの使い方<xsl:transform>
(又は
<xsl:stylesheet>
) 直下で
<xsl:param>
を使うmsxsl
の場合:Z:\>msxsl data.xml transform.xsl name=value >result.html
ヒント:
<xsl:template>
が必要正解例: fac.xsl
提出: 1月18日 (日曜日) 22:00 までに Moodle に投稿
(例えば新年とか成人式の) 挨拶文を (X)HTML で出力する変換ファイルを作る。
相手の名前と挨拶文の回数は外側から指定できるようにする。
ヒント: 「n 回の挨拶文」を階乗と同じように定義する
授業全体の内容を復習し、分からない部分をリストアップ