Поделиться через


Отображение HTML в таблице стилей XSL

В этой статье описывается, как работать с таблицами стилей XSL для использования html-тегов, находящихся внутри XML-данных.

Исходная версия продукта: таблицы стилей XSL
Исходный номер базы знаний: 264665

Итоги

Если XML-данные содержат HTML-теги, эти теги считаются обычными данными по умолчанию и не анализируются как HTML. Выходные данные отображаются как текст без эффектов HTML. В этой статье объясняется, как работать с таблицами стилей XSL для использования html-тегов, находящихся внутри XML-данных.

Дополнительная информация

В элементе xsl:value-of используйте свойство XSL disable-output-escaping, а затем установите его значение на yes. По умолчанию параметр disable-output-escapeing имеет значение no. Это свойство было добавлено с версией средства синтаксического анализа XML за май 2000 г.

Вы можете установить последнюю версию XML парсера MS из дорожной карты MSXML.

В следующем примере XML/XSL показано, как работать с таблицами стилей XSL для использования тегов HTML, находящихся внутри XML-данных:

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>

HTML-данные в первой <F2> строке можно записать с помощью специальных последовательностей символов и раздела CDATA, как показано в следующих примерах:

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

Примечание.

Такие символы, как < и > зарезервированные символы в XML, и не интерпретируются, если они помещаются в XML-файл. Замените эти символы на последовательности символов, учитывающие регистр. Дополнительные сведения о работе Корпорации Майкрософт с XML см. в разделе "Обзор пакета SDK MSXML".

Ниже приведен соответствующий файл TestHTML.xsl, демонстрирующий работу с таблицами стилей XSL для использования html-тегов, находящихся внутри XML-данных:

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

Ссылки