次の XML があります。
<item>
<description><![CDATA[Euro sign: €]]></description>
</item>
この XSL に対して実行すると、次のようになります。
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xdt="http://www.w3.org/2005/xpath-datatypes">
<xsl:output method="xml" name="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes" />
<xsl:template match="item">
<xsl:result-document href="test.xml" format="xml">
<feed>
<xsl:value-of select="description" />
</feed>
</xsl:result-document>
</xsl:template>
</xsl:stylesheet>
「test.xml」は次のようになります。
<feed>
<description>Euro sign: €</description>
</feed>
これは完璧です。ただし、<xsl:result-document>
が削除されると、次のようになります。
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xdt="http://www.w3.org/2005/xpath-datatypes">
<xsl:output method="xml" name="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes" />
<xsl:template match="item">
<feed>
<xsl:value-of select="description" />
</feed>
</xsl:template>
</xsl:stylesheet>
出力は次のようになります。
<feed>
<description>Euro sign: €</description>
</feed>
ユーロ記号がエスケープされているため、これは正しくないようです。
プレーン出力を使用するときにユーロ記号をそのままにしておく方法はありますか?
前もって感謝します。