Вход/Регистрация
XSLT
вернуться

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

Шрифт:

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

  • Читать дальше
  • 1
  • ...
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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