=> Главная База Знаний 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">{\rtf1\ansi\deff0{\fonttbl {\\fcharset0 Courier New:}}

  \viewkind4\uc1\pard\langl033\b\ The Planets Table\par\b0

  Name\tab Mass\tab Rad.\tab Day\par

  <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, изображен на 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">{\rtf1\ansi\deff0{\fonttbl(\\fcharset0 Courier New;}}

  \viewkind4\ucl\pard\lang1033\b\ The Planets Table\par

  .

  .

  .

Метод вывода: текст

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

  {\rtf1\ansi\deff0{\fonttbl{\\fcharset0 Courier New;}}

  \viewkind4\uc1\pard\lang1033\b\ The Planets Table\par

  .

  .

  .

то выходной файл RTF начинался бы с символа новой строки, что вызвало бы ошибку приложения для работы с файлами RTF — такого, как Microsoft Word. Более подробно RTF и другие форматы будут рассмотрены в главе 6.