<xsl:output-character> XSLT

Элемент xsl:output-character определяет символ и строку, которая должна его заменять. Является аналогом объявления XML <!ENTITY>.

Элементы-родители:

Синтаксис

XSLT 2.0 и XSLT 3.0

<xsl:output-character
    character = "символ"
    string = "строка" />

Атрибуты

  • characterобязательный атрибут, заменяемый символ.
  • stringобязательный атрибут, строка, заменяющая символ.

Описание и примеры

Пример

Далее приводится небольшой фрагмент примера из описания элемента <xsl:character-map>. Эта таблица стилей заменяет два символа с цифрами в кружках (символы Юникода &#2780; и &#2781;) графикой:

<?xml version="1.0" encoding="utf-8"?>
<!-- character-map2.xsl -->
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" use-character-maps="circles"/>
    <xsl:character-map name="circles">
        <xsl:output-character character="&#x2780;" string="&lt;img src='images/circle1.gif' width='28' height='28'/&gt;"/>
        <xsl:output-character character="&#x2781;" string="&lt;img src='images/circle2.gif' width='28' height='28'/&gt;"/>
    </xsl:character-map>
    <xsl:template match="char-test">
        <html>
            <head>
                <title>A test of some special characters</title>
            </head>
            <body style="font-family: sans-serif;">
                <h1>A test of some special characters</h1>
                <xsl:apply-templates select="*"/>
            </body>
        </html>
    </xsl:template>
    <xsl:template match="special-char">
        <p style="font-size: 200%;">
            <xsl:text>Here's a special character: </xsl:text>
            <xsl:value-of select="."/>
        </p>
    </xsl:template>
</xsl:stylesheet>

Таблица стилей используется для преобразования следующего документа:

<?xml version="1.0" encoding="utf-8"?>
<!-- special-characters2.xml -->
<char-test>
    <special-char>&#x2780;</special-char>
    <special-char>&#x2781;</special-char>
</char-test>

В сгенерированном документе цифры в кружках заменяются графикой:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>A test of some special characters</title>
    </head>
    <body style="font-family: sans-serif;">
        <h1>A test of some special characters</h1>
        <p style="font-size: 200%;">Here's a special character:
            <img src='images/circle1.gif' width='28' height='28'/>
        </p>
        <p style="font-size: 200%;">Here's a special character:
            <img src='images/circle2.gif' width='28' height='28'/>
        </p>
    </body>
</html>

Этот способ хорошо подходит для замены символов, не отображаемых в некоторых броузерах.