Книга: XSLT
Метод вывода: текст
Метод вывода: текст
Метод текстового вывода предназначен не только для создания простого текста: он применяется для любого основанного на тексте формата, не являющегося XML или HTML. Например, с его помощью можно создавать документы в формате RTF (Rich Text Format). В этом формате для задания форматирования документов используются встроенные текстовые коды — их можно поместить в документы самостоятельно при помощи метода текстового вывода.
В листинге 2.6 приведен пример таблицы стилей (которую мы увидим в главе 6), преобразующей planets.xml
в planets.rtf
.
Листинг 2.6. Таблица стилей RTF
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/PLANETS">{rtf1ansideff0{fonttbl {fcharset0 Courier New:}}
viewkind4uc1pardlangl033b The Planets Tableparb0
Nametab Masstab Rad.tab Daypar
<xsl:apply-templates/>
par
}</xsl:template>
<xsl:template match="PLANET">
<xsl:value-of select="NAME"/>
tab
<xsl:value-of select="MASS"/>
tab
<xsl:value-of select="RADIUS"/>
tab
<xsl:value-of select="DAY"/>
tab
par
</xsl:template>
</xsl:stylesheet>
Результирующий документ RTF, planets.rtf, изображен на рис. 2.3 в Microsoft Word 2000. Обратите внимание на то, что я установил метод вывода в текст в элементе <xsl:output method="text">
:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/PLANETS">{rtf1ansideff0{fonttbl(fcharset0 Courier New;}}
viewkind4uclpardlang1033b The Planets Tablepar
.
.
.
Рис. 2.3. Planets.rtf в Microsoft Word
Вы также могли заметить, что я принялся записывать коды RTF сразу же после элемента <xsl:template>
— я сделал так потому, что в документах RTF коды RTF должны появляться с самого начала. Если бы я решил вставлять коды RTF на следующей строке — например, так:
<?xml versions="1.0">
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/PLANETS">
{rtf1ansideff0{fonttbl{fcharset0 Courier New;}}
viewkind4uc1pardlang1033b The Planets Tablepar
.
.
.
то выходной файл RTF начинался бы с символа новой строки, что вызвало бы ошибку приложения для работы с файлами RTF — такого, как Microsoft Word. Более подробно RTF и другие форматы будут рассмотрены в главе 6.
- 1.6 Драйверы и буферы ввода-вывода
- Глава 6 BIOS – базовая система ввода-вывода
- Рисование текста
- Общие правила составления текста регламентов
- Вывод на экран текстовых строк
- Параметры вывода текста
- Направление вывода текста
- 1.5 Структура драйвера устройства Windows
- Элемент STYLE
- Стратегия планирования в действии
- 8.7. Заключение
- Несколько слов о словах, буквах и аргументах