Библиотека 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
