0

次の 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: €&lt;/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: €&lt;/description>
</feed>

ユーロ記号がエスケープされているため、これは正しくないようです。

プレーン出力を使用するときにユーロ記号をそのままにしておく方法はありますか?

前もって感謝します。

4

2 に答える 2