| 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です。・・・ (^ ^; | 
 |