Книга: 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.

Оглавление книги


Генерация: 0.601. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз