http://www.sw.it.aoyama.ac.jp/2009/PB2/lecture3.html
© 2006-9 Martin J. Dürst 青山学院大学
xsl
接頭辞を別のものに変更し、実行してみるどちらか処理が成功した方を Moodle にアップロードしなさい
成功するのは 1番。例えば
...
<hoge:transform
xmlns:hoge='http://www.w3.org/1999/XSL/Transform'
でも変換が動作する (hello-hoge.xsl 参照; 注:
全ての接頭辞を変更しないと失敗)
名前空間 URI は http://www.w3.org/1999/XSL/Transform
と一致しないため、2番は失敗 (hello-2000.xsl 参照)
配布された木構造から XML 文書を作りなさい
配布された木構造には空白ノードが無いが、XML 文書として読みやすい様に改行、字下げを追加しなさい
Moodle にアップロードしなさい
正解例: nodes.xml
/books
: トップの books 要素/books/book
: books の下の (全ての) book 要素/books/book[5]
: 五番目の book 要素book[5]/data/@ISBN
: 五番目の book 要素の data
要素の ISBN 属性book[data/@ISBN]
: ISBN 属性のある book 要素book[data/@ISBN="1-23456-7890"]
: ISBN 属性が 1-234... の
book 要素本のデータ: books.xml
簡単な変換ファイル: books-xpath.xsl
(absolute path and relative path)
/
で区切られている/
で始まるパスは絶対パス
(ルートノードから)/books/book[5]/data/@ISBN
data/@ISBN
.
は現在のノードを示している.[data/@ISBN]
::
node-test[
predicate]
descendant::data[@ISBN]
(axis)
axis::
child::
(子要素)、attribute::
(属性)、descendant::
(子孫要素): 大体省略可能parent::
(親要素)、anchestor::
(祖先要素) などは省略不可能child::
my-element)@
my-attribute: 属性
(attribute::
my-attribute).
: 現在のノード (self::node()
)..
: 親ノード (parent::node()
)//
: 子孫ノード
(/descendant-or-self::node()
)*
: 全ての名前の (要素) ノード(node test)
book
, @ISBN
text()
comment()
processing-instruction()
node()
(要素ノードだけではなく、テキスト、コメントも含む)(predicate)
[7]
: 七番目のノード ([position()=7]
の略)[my-element]
: 子要素 my-element
の存在のチェック[@my-attribute]
: 属性 my-attribute
の存在のチェック[@my-attribute="hoge"]
: 属性の値のチェックbook/data/@ISBN
book/data[@ISBN="1-23456-7890"]
提出: 10月 23日 (金曜日) 22:00 までに Moodle に投稿