<xsl:stylesheet version='1.0'

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

 xmlns:msxsl='urn:schemas-microsoft-com:xslt'

 xmlns:ext='urn:extension-functions'

 exclude-result-prefixes='msxsl ext'>

 <xsl:output encoding='windows-1251'/>

 <msxsl:script

  language='JavaScript'

  implements-prefix='ext'>

  function date() {

   now = new Date;

   return now.getDate() + '.' +

    (now.getMonth() + 1) + '.' +

    now.getYear();

  }

 </msxsl:script>

 <xsl:template match='/'>

  <html>

   <head>

    <title>Today is page</title>

   </head>

   <body>

    <xsl:apply-templates/>

   </body>

  </html>

 </xsl:template>

 <xsl:template match='date'>

  <xsl:value-of select='ext:date()'/>

 </xsl:template>

</xsl:stylesheet>

Листинг П1.5. Выходящий документ

<html>

 <head>

  <META

   http-equiv='Content-Type'

   content='text/html;

   charset=windows-1251'>

  <title>Today is page</title>

 </head>

 <body>Сегодня 18.10.2001.</body>

</html>

Как и во многих других процессорах, в MSXML предусмотрена функция расширения node- set, которая преобразует результирующий фрагмент дерева во множество узлов. Функция node-set принадлежит пространству имен с URI 'urn:schemas-microsoft- com:xslt', и стандартным сценарием ее использования будет примерно следующий:

<xsl:stylesheet

 version='1.0'

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

 xmlns:msxsl='urn:schemas-microsoft-com:xslt'

 exclude-result-prefixes='msxsl '>

 <!-- ... -->

 <xsl:variable name='tree'>

  <!-- Переменная, содержащая результирующий фрагмент дерева -->

  <item>A</item>

  <item>B</item>

 </xsl:variable>

 <!-- ... -->

 <xsl:template ... >

  <!-- Обращение к $tree, как ко множеству узлов -->

  <xsl:value-of select='msxsl:node-set($tree)/item[1]'/>

 </xsl:template>

</xsl:stylesheet>

К сожалению, текущая версия MSXML не поддерживает расширение пользовательскими элементами.

Процессор Xalan

Основные характеристики.

□ Платформы: Java, С++.

□ Расширения: функции и элементы расширения.

□ Полнота реализации: один из наиболее проработанных процессоров. □ Разработчик: Apache XML Project.

□ URL: http://xml.apache.org.

Xalan — это очень известный XSLT-процессор, созданный в рамках Apache XML Project для языковых платформ Java и С++. Xalan, как и остальные продукты Apache XML Project, поставляется с открытым исходным кодом и открытым API, что делает его очень привлекательным для интеграции в другие приложения.

Использование

По сути дела, Xalan Java и Xalan C++ — это библиотеки, позволяющие использовать XSLT-

Вы читаете Технология XSLT
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату