Чтение онлайн

на главную - закладки

Жанры

Холзнер Стивен

Шрифт:

 .

 .

 .

 <xsl:template match="DAY">

<xsl:value-of select="."/>

<xsl:text> </xsl:text>

<xsl:value-of select="@UNITS"/>

 </xsl:template>

</xsl:stylesheet>

И вот результирующий документ:

<HTML>

 <HEAD>

<TITLE>

The Planets Table

</TITLE>

 </HEAD>

 <BODY>

<H1>

The Planets Table

</H1>

<TABLE BORDER="2">

<TR>

<TD>Name</TD>

<TD>Mass</TD>

<TD>Radius</TD>

<TD>Day</TD>

</TR>

<TR>

<TD>Mercury</TD>

<TD>.0553 (Earth = 1)</TD>

<TD>1516 miles</TD>

<TD>58.65 days</TD>

</TR>

<TR>

<TD>Venus</TD>

<TD>.815 (Earth = 1)</TD>

<TD>3716 miles</TD>

<TD>116.75 days</TD>

</TR>

</TABLE>

 </BODY>

</HTML>

Элемент <xsl:document>: создание нескольких результирующих документов

Весьма часто во время преобразования требуется создать несколько результирующих документов. Например, вам может понадобиться создать отчет о прохождении преобразования или разделить входной документ на несколько результирующих документов (например, разбить рассказ на главы). Или же вам может быть нужно создать набор результирующих документов, которые будут использоваться (как при создании кадрового (frameset) документа HTML) совместно с двумя документами, отображаемыми во фреймах.

Создание нескольких результирующих документов настолько распространенная задача, что практически все процессоры XSLT позволяют вам это сделать, даже в XSLT 1.0, где отсутствуют необходимые для этого средства. Процессоры XSLT добавляют для этого новые элементы расширения. Например, Xalan предоставляет элемент

<write>
, позволяющий написать новый результирующий документ. Для работы с этим элементом нужно создать новый префикс пространства имен — здесь я использую «xalan» — которое Xalan использует для элемента, «com.lotus.xsl.extensions.Redirect», и указать, что этот новый префикс является префиксом элемента расширения:

<?xml version="1.0"?>

<xsl:stylesheet version="1.1"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

 xmlns:xalan="com.lotus.xsl.extensions.Redirect"

 extension-element-prefixes="xalan">

 .

 .

 .

Теперь при помощи атрибута

file
элемента
<xalan:write>
можно записать новый файл:

<?xml version="1.0"?>

<xsl:stylesheet version="1.1"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

 xmlns:xalan="com.lotus.xsl.extensions.Redirect"

 extension-element-prefixes="xalan">

 .

 .

 .

 <xalan:write file="newdoc.txt">

<xsl:text>Here's some text.</xsl:text>

 </xalan:write>

В процессоре Saxon применяйте элемент

<output>
. Для этого элемента я использую префикс «saxon», который соответствует URI «http://icl.com/saxon»:

<?xml version="1.0"?>

<xsl:stylesheet version="1.1"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

 xmlns:saxon="http://icl.com/saxon"

 extension-element-prefixes="saxon">

 .

 .

 .

 <saxon:output file="newdoc.txt">

<xsl:text>Here's some text.</xsl:text>

 </saxon:output>

To же можно сделать и в XT; в этом случае используйте пространство имен <http://www.jclark.com/xt» с элементом

<document>
и атрибут
href
для задания имени нового файла:

<?xml version="1.0"?>

<xsl:stylesheet version="1.1"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

 xmlns:xt="http://www.jclark.com/xt"

 extension-element-prefixes="xt">

 .

 .

 .

 <xt:document href="#">

<xsl:text>Here's some text.</xsl:text>

Поделиться:
Популярные книги

Стражи душ

Кас Маркус
4. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Стражи душ

Курс 1. Сентябрь

Фокс Гарри
1. Маркатис
Фантастика:
аниме
фэнтези
сказочная фантастика
5.00
рейтинг книги
Курс 1. Сентябрь

Я до сих пор царь. Книга XXXII

Дрейк Сириус
32. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я до сих пор царь. Книга XXXII

Ваше Сиятельство 2

Моури Эрли
2. Ваше Сиятельство
Фантастика:
фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Ваше Сиятельство 2

Вечный. Книга I

Рокотов Алексей
1. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга I

Эпоха Опустошителя. Том VI

Павлов Вел
6. Вечное Ристалище
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Эпоха Опустошителя. Том VI

Барон

Первухин Андрей Евгеньевич
5. Ученик
Фантастика:
фэнтези
5.60
рейтинг книги
Барон

Поводырь

Щепетнов Евгений Владимирович
3. Ботаник
Фантастика:
фэнтези
6.29
рейтинг книги
Поводырь

Газлайтер. Том 40

Володин Григорий Григорьевич
40. История Телепата
Фантастика:
альтернативная история
аниме
попаданцы
5.00
рейтинг книги
Газлайтер. Том 40

Страж Кодекса. Книга V

Романов Илья Николаевич
5. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Страж Кодекса. Книга V

Бастард Императора. Том 13

Орлов Андрей Юрьевич
13. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Бастард Императора. Том 13

Бояръ-Аниме. Газлайтер. Том 33

Володин Григорий Григорьевич
33. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Бояръ-Аниме. Газлайтер. Том 33

Неучтенный элемент. Том 11

NikL
11. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 11

Эпоха Опустошителя. Том III

Павлов Вел
3. Вечное Ристалище
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Эпоха Опустошителя. Том III