XSLT

Материал из BiTel WiKi

Версия от 08:24, 28 июня 2013; Администратор (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

XSLT - язык, основанный на формате XML. Его назначение - трансформация XML дерева с данными в какой-либо результирующий формат. Например: TXT, XHTML (HTML документ, соответсвующий правилам формата XML). Трансформация производится XSLT процессором.

Изображение:XSLT_1.png


В XSLT шаблоне различаются просто теги, которые без изменений перейдут в результирующий документ и управляющие теги для процессора с префиксом xslt. Пример фрагмента XSLT документа:

<tbody>
  <xsl:for-each select="bills/bill">
  <xsl:variable name="uid" select="@uid"/>
  <tr>
   <td nowrap="nowrap"><xsl:value-of select="@number"/></td>
   <td><xsl:value-of select="@create_dt"/></td>
   <td><xsl:value-of select="@pay_dt"/></td>
   <td nowrap="nowrap"><xsl:value-of select="@summ"/></td>
   <td nowrap="nowrap">
    <xsl:choose>
     <xsl:when test="@status=0">не оплачен</xsl:when>
     <xsl:otherwise>оплачен</xsl:otherwise>
    </xsl:choose>
   </td>
   <td>
     <xsl:choose>
     <xsl:when test="$uid=-1">создан Вами</xsl:when>
     <xsl:otherwise>создан администратором</xsl:otherwise>
    </xsl:choose>
  < /td>

Здесь форматируется XHTML документ, при этом используются стандартые HTML теги (tr, td) и управляющие теги поцессора (xsl:choose, xsl:value-of).

Рассмотрим несколько XSLT директив, встречающихся в приведенном фрагменте: <xsl:for-each select="bills/bill"> - для каждого узла bills/bill исходного дерева XML данных выполнить то что указано до </xsl:for-each>

<xsl:variable name="uid" select="@uid"/> - создать переменную uid и присвоить ей значение из атрибута uid текущего узла bill

<xsl:value-of select="@number"/> - вставить значение атрибута number текущего элемента bill

<xsl:choose> - условный оператор, аналог case либо if-else, внутри могу быть несколько <xsl:when> условий и действие по умолчанию <xsl:otherwise>

С помощью XSLT формируются все выводимые биллингом XHTML, TXT, PDF формы, в т.ч. страницы статистики пользователя. Модифицируя шаблон, поставляемый в составе системы, вы можете менять оформление выводимых данных любым образом. Для этого нужно только получить XML документ с данными и имя XSLT шаблона, который биллинг использует для той или иной трансформации.

Ниже приведены ссылки на руководства по XSLT. Язык разметки XSLT тесно завязан с языком XPath - языком выборки данных в XML деревьях. XSLT процессор используемый биллингом поддерживает спецификации XSLT и XPath версий 1.0 и 2.0.

Расширения XSLT

Расширения - это некоторые дополнительные возможности работы с датами, математическми функциями и т.п. Они не входят в стандарт xslt и зависят от реализации xslt- процессора. Если используется в качетсве процессора xalan, то описание его расширений можно посмотреть тут: http://xml.apache.org/xalan-j/extensionslib.html

Пример использования :

<xsl:stylesheet ....
  xmlns:datetime="http://exslt.org/dates-and-times"
....
  >
..........
<!-- Выводит текущую дату в формате dd.MM.yyyy -->
<xsl:value-of select="datetime:formatDate(datetime:dateTime(), 'dd.MM.yyyy')"/>

Дополнительные ссылки

На русском:

  1. http://www.raleigh.ru/XML/XSLTutorial/contents.htm либо http://www.zvon.org/xxl/XSLTutorial/Output_rus/contents.htm
  2. http://www.webclub.ru/archive/xml/article-724.html либо http://citforum.ru/internet/xmlxslt/xmlxslt.shtml
  3. http://www.opennet.ru/base/dev/xml_example.txt.html
  4. http://citforum.ru/internet/xslt/index.shtml

На английском:

  1. ftp://bgbilling.ru/pub/bgbilling/doc
  2. http://www.w3schools.com/xsl/default.asp
  3. http://www.w3schools.com/xpath/default.asp
  4. http://www.tizag.com/xmlTutorial/xslttutorial.php
  5. http://www.zvon.org/xxl/XSLTutorial/Books/Book1/index.html
  6. http://www.topxml.com/xsl/tutorials/intro/default.asp
  7. Запрос в Google: http://www.google.ru/search?hl=en&q=xslt+tutorial
Источник — «http://wiki.bitel.ru/index.php/XSLT»
Личные инструменты