Библиотека Dklab_ShortXSLT — это система для поддержки упрощенного синтаксиса XSLT для встроенных в PHP классов XSLTProcessor и DOMDocument. Фактически, это компилятор с диалекта XSLT в стандартный XSLT, запускаемый «на лету» и «прозрачно» для вызывающего кода (естественно, имеется возможность кэширования, чтобы компиляция запускалась только в до следующего изменения шаблона). Там, где вы используете XSLT в PHP-скриптах, вы можете подключить ShortXSLT, написав несколько дополнительных строчек кода.
Стандартный синтаксис XSLT весьма громоздок, что оказывается неудобным при его использовании в Web-программировании. Библиотека позволяет облегчить эту проблему.
Поддерживаются сокращенные версии для следующих конструкций: вставка значения вне тэгов, вставка языковой константы, вставка sprintf-like константы, if-then-elseif, foreach.
Пример на ShortXSLT:
А вот то же самое, но на чистом XSLT:
ShortXSLT лишь расширяет набор инструкций XSLT. При этом все стандартные конструкции XSLT остаются доступными. Например, вы можете использовать <xsl:value-of select=«node» disable-output-escaping=«yes» /> для вставки «сырого» HTML в результирующий документ (конструкция {node} всегда вставляет «заквоченные» данные).
Библиотека распространяется по лицензии LGPL и доступна для скачивания на dklab.ru/lib/Dklab_ShortXSLT
Стандартный синтаксис XSLT весьма громоздок, что оказывается неудобным при его использовании в Web-программировании. Библиотека позволяет облегчить эту проблему.
Поддерживаются сокращенные версии для следующих конструкций: вставка значения вне тэгов, вставка языковой константы, вставка sprintf-like константы, if-then-elseif, foreach.
Пример на ShortXSLT:
... <xsl:template match="/"> {if /some/node = 1} {#hello}, world! {#my_name_is(/my/name)}. {elseif /other/node = /some/node} <p>You have {/money} dollars.</p> {else} {foreach /nodes/*} Node {.}<br/> {/foreach} {/if} </xsl:template> ...
А вот то же самое, но на чистом XSLT:
... <xsl:template match="/"> <xsl:choose> <xsl:when test="/some/node = 1"> <xsl:value-of select="h:const('hello')" />, world! <xsl:value-of select="h:const('my_name_is', /my/name)" />. </xsl:when> <xsl:when test="/other/node = /some/node"> <p>You have <xsl:value-of select="/money" /> dollars.</p> </xsl:when> <xsl:otherwise> <xsl:for-each select="/nodes/*"> Node <xsl:value-of select="." /><br/> </xsl:for-each> </xsl:otherwise> </xsl:choose> </xsl:template> ...
ShortXSLT лишь расширяет набор инструкций XSLT. При этом все стандартные конструкции XSLT остаются доступными. Например, вы можете использовать <xsl:value-of select=«node» disable-output-escaping=«yes» /> для вставки «сырого» HTML в результирующий документ (конструкция {node} всегда вставляет «заквоченные» данные).
Библиотека распространяется по лицензии LGPL и доступна для скачивания на dklab.ru/lib/Dklab_ShortXSLT