XML:XSLT:CDATAセクション:XSLTでHTML出力する際、特殊文字表現せず自由に記述する方法
XML (18 items)
2004年10月12日
XSLT内でHTMLやXMLで特殊文字にあたる”<”や”>”などの文字列を、
気にせず、そのまま使用できる。
<記述例>
<xsl:output method="html" cdata-section-elements="cdatatest"/>
・
・
・
<cdatatest><![CDATA[
<テスト>
]]></cdatatest>
XSLTタグの文字として認識され、エラーとなる。
<エラー使用例>
・XMLデータ(data5.xml)
<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet type="text/xsl" href="data5.xsl"?>
<html>
CDATAテスト
</html>
・XMLデータを編集するXSLT(data5.xsl)
<?xml version="1.0" encoding="Shift_JIS" ?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml" version="1.0">
<xsl:output
method="html"
version="1.0"
encoding="Shift_JIS"
omit-xml-declaration="yes"
standalone="yes"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
indent="yes"
media-type="text/html"/>
<xsl:template match="/">
<xsl:apply-templates />
<br />
<テスト> ・・・"<",">"で囲まれた文字・・・(1)
</xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>
※上記の場合は、(1)の記述中に”<”や”>”が含まれている為、エラーとなる。
<正しい使用例>
・XMLデータを編集するXSLT(data5.xsl)
<?xml version="1.0" encoding="Shift_JIS" ?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml" version="1.0">
<xsl:output
method="html"
version="1.0"
encoding="Shift_JIS"
omit-xml-declaration="yes"
standalone="yes"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
indent="yes"
media-type="text/html"/>
<xsl:output method="html" cdata-section-elements="cdatatest"/>
<xsl:template match="/">
<xsl:apply-templates />
<br />
<cdatatest><![CDATA[
<テスト> ・・・"<",">"で囲まれた文字
]]></cdatatest>
</xsl:template>
</xsl:stylesheet>
・生成したHTML
<html>
CDATAテスト
<br />
<テスト> ・・・"<",">"で囲まれた文字
</html>
■使用例のダウンロード
ダウンロードし、data5.xmlをブラウザで見る事で確認できます。
>>ダウンロード
※XSLTの動くブラウザでお試し下さい。IEであればIE6以上です。