次の方法で共有


XSLスタイルシートでHTMLを表示する

この記事は、XMLデータ内にあるHTMLタグを使用するために、XSLスタイルシートをどのように操作するかを説明します。

Original product version: XSL スタイルシート
元の KB 番号: 264665

概要

XMLデータにHTMLタグが含まれている場合、これらのタグはデフォルトではプレーンデータとして扱われ、HTMLとして解析されません。 出力はHTML効果なしでテキストとして表示されます。 この記事では、XMLデータ内にあるHTMLタグを使用するために、XSLスタイルシートを操作する方法を説明します。

詳細情報

xsl:value-of 要素内で、XSL の disable-output-escaping プロパティを使用し、yes に設定します。 デフォルトでは、disable-output-escapingはnoに設定されています。 このプロパティは、2000年5月版のXMLパーサーに追加されました。

最新バージョンのMS XMLパーサーをMSXML Roadmapからインストールできます。

以下のXML/XSL例は、XMLデータ内にあるHTMLタグを使用するためにXSLスタイルシートと連携する方法を示します。

Here is the XML file that we want to display...
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="testHTML.xsl"?>
<TABLE>
    <ROW>
        <F1>Next one should be in H1 heading</F1>
        <F2><H1>This is a H1 heading</H1></F2>
    </ROW>
    <ROW>
        <F1>Next one should be Italic</F1>
        <F2><I>I am italic</I></F2>
    </ROW>
    <ROW>
        <F1>Next one is a link</F1>
        <F2>Goto <A HREF="https://www.microsoft.com">Microsoft</A></F2>
    </ROW>
</TABLE>

最初の<F2>行にあるHTMLデータは、特別な文字シーケンスやCDATAセクションを使用して記述できます。以下の例で示します。

  • <F2>&lt;H1&gt;This is a H1 heading&lt;/H1&gt;</F2>
  • <F2>

注意

XMLでは<や>のような文字は予約文字であり、XMLファイルに配置されていても解釈されません。 これらの文字を大文字と小文字を区別した文字列に置き換えてください。 Microsoft の XML に関する作業の詳細については、MSXML SDK 概要をご覧ください。

XMLデータ内のHTMLタグを使用するために、XSLスタイルシートを操作する方法を示す対応するTestHTML.xslファイルは次のとおりです。

==========================================================================
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
<xsl:template match="TABLE">
<HTML>
    <BODY>
        <TABLE border='1' style='table-layout:fixed' width='600'>
            <TR bgcolor='#FFFF00'>
                <TD>Expected action</TD>
                <TD>HTML display</TD>
            </TR>
            <xsl:for-each select="ROW">
            <TR>
                <TD><xsl:value-of select='F1'/></TD>
                <TD><xsl:value-of select='F2' disable-output-escaping="yes"/></TD>
            </TR>
        </xsl:for-each>
        </TABLE>
    </BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>
==========================================================================

参考文献