<xsl:copy>と<xsl:copy-of>

■XSLT処理要素<xsl:copy-of>

・(書式)<xsl:copy-of select="xPath式"/>
・select属性で指定したノード自身とその子孫の全ノードを、タグ名・属性を含めソースそのまま結果ツリーにコピー出力する。HTMLタグが含まれる場合、HTMLタグとして認識され出力結果に反映される。(IE6.0では終了タグは表示されない)

■XSLT処理要素<xsl:copy>

・コンテキストノードをソースそのまま結果ツリーにコピー出力する。ただし、属性や子孫要素はコピーされない。 コンテキストノードのタグ名だけが出力される。
・(書式)<xsl:copy>〜</xsl:copy>

[サンプルXML文書を表示](下のフレームに)

XMLソース

<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet type="text/xsl" href="copy01.xsl"?>
<家系>
<親>お父さんお母さん
<私 年齢="55"><b style="color:red">おいら</b>
<長男 年齢="25">長男
<孫1>長男の娘
<曾孫>長男の娘の子</曾孫>
</孫1>
</長男>
<長女>長女
<孫2>長女の息子</孫2>
</長女>
<次男>次男</次男>
</私>
<弟1 年齢="38">1番目の弟
<めい>弟の娘</めい>
</弟1>
<弟2 年齢="32">2番目の弟
<おい>弟の息子</おい>
</弟2>
</親>
<end>以上です(2004/5/10)</end>
</家系>

XSLソース

<?xml version="1.0" encoding="Shift_Jis"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="Shift_JIS"/>
<xsl:template match="/">
<xsl:apply-templates select="家系/親/私"/>
<xsl:apply-templates select="家系/親/弟1"/>
</xsl:template>
<xsl:template match="私">
<h4>&lt;xsl:copy-of&gt;の使用例</h4>
<pre><xsl:copy-of select="."/></pre>
<hr/>
</xsl:template>
<xsl:template match="弟1">
<h4>&lt;xsl:copy&gt;の使用例</h4>
<pre><xsl:copy>一番目の弟<xsl:copy-of select="../弟2/おい"/></xsl:copy></pre>
</xsl:template>
</xsl:stylesheet>

end(04/5/10)