2005年03月06日(日)更新 |
■元のXMLデータ要素の利用
たけち: 今回は、xsl:copy-of要素を勉強しよう。 さらら: xsl:copy-of? なにかをコピーするためのxslt要素なのね、きっと。 たけち: そうそう。xsl:copy-ofは、変換前のXMLデータの要素を、その子要素や属性を含めて、そのまま変換後のXMLデータやHTMLデータなどの要素として出力するときに便利なんだよ。 さらら: へぇ〜。そういうことができるんだ。そうすると、XSLTスタイルシートが簡単に書けそうね。 たけち: そうだね。でも、変換前の要素・属性をそのまま出力するってことは、変換後の要素・属性として意味のあるものが、元のXMLデータに含まれていることが必要だよね。 さらら: あっ、なるほど。そうよね。 たけち: じゃあまず、xsl:copy-ofの書き方をみておこうね。次に載せておくね。 |
■xsl:copy-ofの書き方
■サンプルXMLデータ: flowers.xml
さらら: xsl:copy-of要素の書き方は簡単そうね。でも、具体的にはどう使ったらいいのかしら。。 たけち: 一言で言うと、出力したい箇所にxsl:copy-ofを書いて、コピーしたい変換前のXMLデータの要素を指定すればいいんだよ。それを簡単な例で確認してみようね。 さらら: うん。お願いね。 たけち: 今回は、これまでと違った例でやってみるね。 |
【flights.xml】
※【flights.xml】 XMLファイル: フライトスケジュールのデータ |
さらら: 万葉集のデータじゃないのね。 たけち: うん。今回の例は、フライトスケジュールの例だよ。 さらら: 羽田から出雲行きね! 便名毎に発時刻と着時刻が載っているのね。 たけち: このXMLデータを良く見てごらん。table要素は、htmlのtable要素と同じように書かれているよね。 さらら: ほんと。。。。あっ、これを変換後のHTMLデータにコピーして、そのまま使おうってことね。 たけち: そうなんだ。次の図のようなイメージだね。 |
■xsl:copy-ofの使用例(XMLデータのtable要素以下をそのままコピー)
■xsl:copy-ofを使ったスタイルシート例
さらら: ここでは、丸ごとtable要素をコピーするのね。 たけち: うん。ただ、元のXMLデータに表示用の属性として、bgcolor="silver"なんてのがあるけど、実際にはないほうがいいんだよね。ここでは、サンプルを簡単にするために入れてあるから、注意してね。 さらら: えぇ、わかったわ。 たけち: じゃあ。xsl:copy-ofを使ったスタイルシート例を載せるね。 |
【flights.xslt】
※【flights.xslt】 XSLTファイル: xsl:copy-of要素を含んでいます |
■flights.xmlをIEで表示する
さらら: route要素の下の"table"要素をxsl:copy-of要素でまるごとコピーしているのね。 たけち: そうだね。じゃあ、実際にIEで表示してみようね。 さらら: は〜い。 |
フライトデータのXMLファイル flights.xml(上記説明のXSL適用)
■flights.xmlをIEで表示
さらら: なるほどね。XMLデータの要素を考えるときに特別な理由がないときは、HTMLなんかと同じにしておくと便利なのね。 たけち: そうだね。じゃあ、今回はここまでね。 さらら: はい。ありがとう! →次回はxsl:copyです。・・・ (^ ^; |