BGBilling XSLT
Материал из BiTel WiKi
Boris (Обсуждение | вклад) (Новая: XSLT - язык, основанный на формате XML. Его назначение - трансформация XML дерева с данными в какой-либо резу...) |
Boris (Обсуждение | вклад) |
||
Строка 34: | Строка 34: | ||
Рассмотрим несколько XSLT директив, встречающихся в приведенном фрагменте: | Рассмотрим несколько XSLT директив, встречающихся в приведенном фрагменте: | ||
- | '''<xsl:for-each select="bills/bill">''' - для каждого узла '''bills/bill''' исходного дерева XML данных выполнить то что указано до </xsl:for-each> | + | '''<xsl:for-each select="bills/bill">''' - для каждого узла '''bills/bill''' исходного дерева XML данных выполнить то что указано до '''</xsl:for-each>''' |
'''<xsl:variable name="uid" select="@uid"/>''' - создать переменную '''uid''' и присвоить ей значение из атрибута '''uid''' текущего узла '''bill''' | '''<xsl:variable name="uid" select="@uid"/>''' - создать переменную '''uid''' и присвоить ей значение из атрибута '''uid''' текущего узла '''bill''' |
Версия 06:47, 25 апреля 2008
XSLT - язык, основанный на формате XML. Его назначение - трансформация XML дерева с данными в какой-либо результирующий формат. Например: TXT, XHTML (HTML документ, соответсвующий правилам формата XML). Трансформация производится XSLT процессором.
В 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. На русском:
- http://www.raleigh.ru/XML/XSLTutorial/contents.htm либо http://www.zvon.org/xxl/XSLTutorial/Output_rus/contents.htm
- http://www.webclub.ru/archive/xml/article-724.html либо http://citforum.ru/internet/xmlxslt/xmlxslt.shtml
- http://www.opennet.ru/base/dev/xml_example.txt.html
- http://citforum.ru/internet/xslt/index.shtml
На английском:
- ftp://bgbilling.ru/pub/bgbilling/doc
- http://www.w3schools.com/xsl/default.asp
- http://www.w3schools.com/xpath/default.asp
- http://www.tizag.com/xmlTutorial/xslttutorial.php
- http://www.zvon.org/xxl/XSLTutorial/Books/Book1/index.html
- http://www.topxml.com/xsl/tutorials/intro/default.asp
- Запрос в Google: http://www.google.ru/search?hl=en&q=xslt+tutorial