http://www.sw.it.aoyama.ac.jp/2006/PB2/lecture9.html
O 棟 529号室
© 2006 Martin J. Dürst 青山学院大学
<xsl:apply-templates>
内に<xsl:sort>
を使って@select
で並び換えに使うもの (例:
値段、ページ数) を指定@data-type
, @order
など)
で詳細を指定以前作った変換ファイルを使って、本を ISBN 順や値段順や著者の数順など、そしてそれぞれの組み合わせの並び換えの変換ファイルを作ってください。
複数の文書の組み合わせdocument()
関数で呼び込むdocument()
関数not(
...)
, last()
)document()
関数の引数はファイル名であるdocument('books.xml')
document()
関数の値はそのファイルに入っている XML
文書のルートであるdocument('books.xml')/books/book[@isbn='4-...']
である決まった ISBN の本の選択xmlns:接頭辞="名前空間URI"
で指定xmlns="名前空間URI"
接頭辞:要素名
などで使用order.xml:
<order xmlns='http://www.sw.it.aoyama.ac.jp/2006/PB2/order'> ... <books> <book isbn='4-641-16210-7' number='1'/> ...
books.xml:
<books> <book><property><title>...
orders.xsl:
<xsl:transform xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:o='http://www.sw.it.aoyama.ac.jp/2006/PB2/order' version='1.0'> ... <xsl:apply-templates select='o:order'/> ... <xsl:template match='title'>
<xsl:variable>
<xsl:variable name='my値' select='...' />
:
変数の値は @select
の結果<xsl:variable
name='my値'>...</xsl:variable>
:
変数の値は要素の内容$
を付けて使う@isbn = $order_isbn
(data types)
XSLT の変数、XPath の式などに数種類がある:
データ型の間の変換はある程度自動的に実行
<xsl:value-of>
要素<xsl:apply-templates>
の @select
はノードセットでないといけない<xsl:value-of
select=''>
が使える<xsl:value-of select='@price * @number'/>
提出: 12月10日 (日曜日) 22:00 までに Moodle に投稿
order.xml の注文を HTML で分かりやすいように変更する。注文票に本の題名、著者、値段などをbooks.xml から引用し、本ごとの小計 (冊の数 * 単価) を計算し、表で出力する。
注意: books.xml を変更しましたので、更新してください。
条件: 同じ処理を繰り返さないように、そして XSLT が読みやすいように、変数を一つだけではなく三つぐらい使ってください。
ヒント: 途中までの変換ファイル: myorders.xsl