CDATAを含むXMLがある。これをXSLTを用いてXHTMLにしたい。
CDATAの中身はXHTMLだとわかっているとする。これはそのまま出力したい。
どういうXSLTをかけばよいだろう?
元のXMLは、たとえばこう。
<boo>
<foo>123</foo>
<woo><![CDATA[<p>This is XHTML.</p><p><a href="http://www.wankuma.com">わんくま同盟</a></p>]]></woo>
</boo>
これを、こうしたい。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>boo-foo-woo</title>
</head>
<body>
<table>
<thead>
<tr><th>Foo</th><th>Woo</th></tr>
</thead>
<tbody>
<tr>
<td>123</td>
<td><p>This is XHTML.</p><p><a href="http://www.wankuma.com">わんくま同盟</a></p></td>
</tr>
</tbody>
</table>
</body>
</html>
XSLTはどうなる?
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
<xsl:template match="/">
<html>
<head>
<title>boo-foo-woo</title>
</head>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="boo">
<table>
<thead>
<tr><th>Foo</th><th>Woo</th></tr>
</thead>
<tbody>
<tr>
<td><xsl:value-of select="foo"/></td>
<td>< ??? ここは ??? ></td>
</tr>
</tbody>
</table>
</xsl:template>
</xsl:stylesheet>