在 XSL 样式表中显示 HTML

本文介绍如何使用 XSL 样式表来使用 XML 数据内的 HTML 标记。

原始产品版本: XSL 样式表
原始 KB 数: 264665

总结

当 XML 数据包含 HTML 标记时,这些标记默认被视为纯数据,并且不会解析为 HTML。 输出显示为没有 HTML 效果的文本。 本文介绍如何使用 XSL 样式表来使用 XML 数据内的 HTML 标记。

详细信息

xsl:value-of 元素中,使用 XSL 的 disable-output-escaping 属性,并将其设置为是。 默认情况下,禁用输出转义设置为 。 此属性是随 XML 分析器 2000 年 5 月版本一起添加的。

可以从 MSXML 路线图安装最新版本的 MS XML 分析器

以下 XML/XSL 示例演示如何使用 XSL 样式表来使用 XML 数据内的 HTML 标记:

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 概述

下面是相应的 TestHTML.xsl 文件,演示如何使用 XSL 样式表来使用 XML 数据中的 HTML 标记:

==========================================================================
<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>
==========================================================================

参考