XSLT

XSLT бинарные операции (AND)

Бинарная операция AND

Чтобы это сделать достаточно на числовых операндах следующую формулу

Пример:

XSLT - работа с переменными типа массив и древо

В XSL возможность работы с переменными типа массив и дерево обеспечивается при помощи расширения exsl.

Переменную можно задать в явном виде

<xsl:variable name="process_stages">
<stage name="unprocessed"/>
<stage name="inprocess"/>
<stage name="processed"/>
</xsl:variable>

Либо, что правильнее, взять из дополнительного файла

XSL Выбор аттрибута по значению переменной

Чтобы выбрать аттрибут с именем, которое задается в переменной подходит конструкция - взять все * атрибуты @ где name() равное = значению переменной $variable

Пример:

Выводим в переменную выбранное значение

<xsl:variable name="attribute_name" select="\'attribute_1\'">

<input id="{$attribute_name}" value="{/SelectedParameters/@*[name()=$attribute_name]}" type="text" />

XSLT - спецсимволы или как вставить пробел.

 

В XSLT можно вывести любой символ указывая его номер в Unicode следующим образом - &NNNN;.

Пример:

 Чтобы поставить неубиваемый пробел &nbsp; в данных xml 
или в шаблоне xslt надо написать &#160;

XSLT - объявление переменной с условием.

 

В XSLT переменную нельзя переопределять поэтому если возникает необходимость задавать ее значение в зависимости от условий, то наиболее эффективной конструкцией будет использование choose.

Пример:

XSLT - Как отсортировать записи.

Сортировка

Чтобы это сделать следует в цикл for-each добавить xsl:sort с аттрибутом select указывающим поле (правило), по которому будет идти сортировка.

Отметим что по умолчанию параметры сравниваются как строки т.е. "1" > "2", но "10" < "2". Чтобы это изменить надо использовать аттрибут data-type со значением number.

Пример:

XSLT - форматирование чисел и строк.

Форматирование чисел

Если надо вывести числовой параметр и при этом важен формат (int/float), то полезно использовать элемент xsl:number

Пример:

Для вывода значения аттрибута length в килобайтах пишем 
(целым округленным числом)

<xsl:number value="@length div 1024" format="1"/>

XSLT Использование и хранение словарей во внешних XML.

 

Часто бывает полезно хранить набор значений для перевода в отдельном словаре и при необходимости подставлять то или иное значение по параметру. В xslt это реализовано средствами функции document и елемента xsl:key

Пример:

XSLT - Выводим элементы в несколько колонок.

 

Очень часто возникает необходимость вывести информацию (картинки, ссылки на файлы, просто блоки текста) в несколько колонок. Если мы имеем однотипные записи

Пример:

<image title="One"/>
<image title="Wto"/>
<image title="Three"/>

И хотим вывести их в таблицу в две колонки. То в XSL шаблоне нам достаточно сделать двойной цикл.