Элементы XSLT - XSLT elements

XSLT (Extensible Stylesheet Language Transformations) определяет множество элементов для описания преобразований, которые должны применяться к документу. В этой статье перечислены некоторые из этих элементов. Введение в XSLT см. В основной статье .

Логические элементы XSLT

Узел Описание / атрибуты Контейнер / дети пример
xsl: применить шаблоны Указывает, что в этом узле могут существовать другие совпадения ; если это не указано, любые совпадения будут проигнорированы. Если указан select , будут применяться только шаблоны, которые задают «совпадение», соответствующее выбранному типу узла или атрибута. Т.е. элементы, соответствующие атрибуту select в xsl: apply-templates, соответствуют шаблону, который соответствует тем же элементам. Если указан режим , будут применяться только шаблоны с одинаковым «режимом» и подходящим «соответствием». Любой родитель. Может содержать любое количество дочерних элементов xsl: sort и xsl: with-param .
<xsl:apply-templates/>
xsl: выбрать Множество вариантов. Без атрибутов. Любой родитель. Содержит xsl: when блоков и до одного блока xsl: else .
<xsl:choose></xsl:choose>
xsl: для каждого Создает цикл, который повторяется для каждого совпадения. select обозначает критерии соответствия. Любой родитель. Может содержать любой XML.
<xsl:for-each select="input[@name=$name]"></xsl:for-each>
xsl: если Да или нет Нет условий. test определяет критерии для входа в if. Любой родитель. Может содержать любой XML.
<xsl:if test="$type='text' or $type='password'"></xsl:if>
xsl: иначе Выбор по умолчанию, если ни один из критериев xsl: when не соблюден. xsl: выберите . Может содержать любой XML.
<xsl:otherwise></xsl:otherwise>
xsl: таблица стилей Элемент верхнего уровня. Происходит только один раз в документе таблицы стилей. version указывает, какая версия XSLT используется. xmlns: xsl указывает URL-адрес этого стандарта. Элемент верхнего уровня. Содержит весь XML.
<xsl:stylesheet></xsl:stylesheet>
xsl: шаблон Задает шаблоны обработки. совпадение - это когда следует использовать шаблон. name дает шаблону имя, которое xsl: call-template может использовать для вызова этого шаблона. xsl: таблица стилей . Может содержать любой XML.
<xsl:template match="//input"></xsl:template>
xsl: переменная Позволяет объявить переменную. name - это имя переменной. Позже на него можно будет ссылаться $name. select - это значение переменной. Любой родитель. нет детей.
<xsl:variable name="type" select="@type"/>
xsl: когда Да или Нет условий. test определяет критерии для входа в if. xsl: выберите . Может содержать любой XML.
<xsl:when test="$type='radio'"></xsl:when>

Пример таблицы стилей XSLT с использованием логических элементов

<xsl:stylesheet>
    <xsl:template match="//input">
        <xsl:variable name="type" select="@type"/>
        <xsl:variable name="name" select="@name"/>
        <xsl:if test="$type='text' or $type='password' or $type='radio' or $type='checkbox'">
            <xsl:choose>

                <xsl:when test="$type='radio'">
                    <xsl:if test="not(preceding-sibling::input[@type='radio'])">
                        <select name="{@name}">
                            <xsl:for-each select="../input[@name=$name]">
                                <option value="{@value}">
                                    <xsl:apply-templates/>
                                </option>
                            </xsl:for-each>
                        </select>
                    </xsl:if>
                </xsl:when>

                <xsl:when test="$type='text'">
                    <input name="{@name}" type="{@type}">
                        <xsl:apply-templates/>
                    </input>
                </xsl:when>

                <xsl:when test="$type='password'">
                    <input name="{@name}" type="{@type}">
                        <xsl:apply-templates/>
                    </input>
                </xsl:when>

            </xsl:choose>
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>

Элементы ввода-вывода файла XSLT

Узел Описание / атрибуты Контейнер / дети пример
xsl: шаблон вызова Вызывает шаблон, имя которого указано. имя совпадает с именем в xsl: template . Любой родитель. дочерние элементы - это xsl: with-param .
<xsl:call-template name="lib:make-elem">
xsl: import Извлекает другой файл XSLT. href - это URI файла. xsl: таблица стилей . Нет детей.
<xsl:import href="..\Library\FuncLib.xslt"/>
xsl: вывод Описывает, как будут возвращены данные. Метод определяет , какой тип данных возвращаются. omit-xml-декларация указывает, должен ли быть включен исходный тег xml. кодировка определяет способ возврата данных. xsl: таблица стилей . Нет детей.
<xsl:output method="xml" omit-xml-declaration="yes" encoding="UTF-8"/>
xsl: param Обозначает параметр, который может быть передан в шаблон с помощью xsl: call-template . xsl: шаблон . Нет детей.
<xsl:param name="elem-name"/>
xsl: текст Выводит содержимое тега. Любой родитель. Нет детей.
<xsl:text>ClaimNumber ClaimSeqNumber</xsl:text>
xsl: значение-из Выводит переменную. select указывает переменную. Любой родитель. Нет детей.
<xsl:value-of select="$s"/>
xsl: with-param Обозначает параметр, передаваемый в xsl: call-template . Ему должен соответствовать параметр xsl: param в шаблоне. name указывает имя параметра. select указывает значение параметра . xsl: шаблон вызова . Нет детей.
<xsl:with-param name="elem-name" select="'hma:ClaimNumber'"/>

XSLT на стороне клиента можно реализовать в браузере , добавив строку, подобную следующей, в исходный XML- файл сразу после корневого тега XML.

<?xml-stylesheet type="text/xsl" href="family.xsl"?>

Это описано на странице http://www.xml.com/pub/a/2000/10/25/msie/index.html.

Другая семантика XSLT

условное обозначение смысл где используется
| оператор объединения. используется для группировки наборов узлов в выражениях XPath. выберите атрибуты элементов, такие как xsl: when , xsl: if , xsl: for-each .
& и любой условный критерий или критерий соответствия, например xsl: if.test , xsl: when.test , xsl: template.select и xsl: for-each.select .
<!-- начать комментарий. нигде не в теге.
--> конец комментария. нигде не в теге.
$ начало имени переменной. в любом месте тега, например xsl: value-of.select и xsl: variable.name .
name() имя обрабатываемого тега. Полезно, если критерий соответствия содержит |s (символы вертикальной черты). любой условный критерий или критерий соответствия, например xsl: if.test , xsl: when.test , xsl: template.select и xsl: for-each.select .
@ атрибут в XML. любой условный критерий или критерий соответствия, например xsl: if.test , xsl: when.test , xsl: template.select и xsl: for-each.select .

Функции, определенные XSLT

Следующие функции могут встречаться во многих атрибутах XSLT, таких как xsl: value-of.select и xsl: for-each.select.

Функция Описание / синтаксис пример
потолок Функция потолка возвращает наименьшее целое число , которое равно или больше числового значения числового аргумента.
ceiling(3.57)
concat Объединяет две или более строк.
concat($fname, ' ', $lname)
содержит Возвращает истину, если первая строка содержит вторую строку, иначе возвращает ложь.
contains('string to search', 'find')
считать Функция count подсчитывает и возвращает количество узлов в наборе узлов.
count(elements)
пол Функция floor возвращает наибольшее целое число, которое равно или меньше числового значения числового аргумента.
floor(3.57)
нормализовать пространство Удаляет пробелы из начала и конца строки
normalize-space($fname)
позиция Функция position возвращает отсчитываемый от единицы индекс текущего узла, обрабатываемого списком узлов элемента xsl: for-each или xsl: apply-templates . Нет никаких аргументов.
position()
круглый Функция round округляет число до ближайшего целого.
round(3.57)
строка Строковая функция преобразует аргумент значения в строку.
string()
длина строки Функция длины строки возвращает количество символов в строке. Строковый аргумент не является обязательным. Если он опущен, по умолчанию используется строковое значение контекстного узла.
string-length('hello')
подстрока Сегмент внутри значения переменной. Подстрока принимает три параметра: входную переменную, первый выбираемый символ и длину результирующей строки.
substring($dob,4,2)
подстрока после Функция substring-after возвращает часть строки, указанной в строковом аргументе, которая появляется после подстроки, указанной в аргументе подстроки.
substring-after('In 1814 we took a little trip', 'we')
подстрока перед Функция substring-before возвращает часть строки, указанной в строковом аргументе, которая встречается перед подстрокой, указанной в аргументе substring.
substring-before('In 1814 we took a little trip', 'we')
сумма Функция sum складывает и возвращает общее значение набора числовых значений в наборе узлов или списке значений.
sum(1,3,7,12)
перевести Принимает строку в аргументе значения, заменяет все вхождения символов в аргументе string1 на заменяющие символы в том же месте в аргументе string2 и возвращает измененную строку.
translate('band', 'abcd', 'ABCD') = 'BAnD'

внешние ссылки

Ссылки