Jump to content

XSLT-элементы

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

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

[ редактировать ]
Узел Описание/атрибуты Контейнер/дети Пример
xsl: применить-шаблоны могут существовать другие совпадения Указывает, что внутри этого узла ; если это не указано, любые совпадения будут игнорироваться. Если select указан , будут применяться только те шаблоны, которые определяют «соответствие», соответствующее выбранному узлу или типу атрибута. Т.е. элементы, соответствующие атрибуту select в xsl:apply-templates, соответствуют шаблону, соответствующему тем же элементам. Если указан режим , будут применены только шаблоны, имеющие тот же «режим» и соответствующее «совпадение». Любой родитель. Может содержать любое количество дочерних элементов xsl:sort и xsl:with-param .
<xsl:apply-templates/>
xsl:выбрать Множественный выбор. Никаких атрибутов. Любой родитель. Содержит блоки xsl:when и до одного блока xsl:otherwise .
<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:шаблон Задает шаблоны обработки. match — это момент, когда следует использовать шаблон. 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: импорт Получает другой файл XSLT. href — это URI файла. xsl:таблица стилей . Никаких детей.
<xsl:import href="..\Library\FuncLib.xslt"/>
xsl:вывод Описывает, как будут возвращены данные. Метод определяет, какие данные возвращаются. omit-xml-declaration указывает, следует ли включать начальный тег xml. кодировка определяет, как возвращаются данные. xsl:таблица стилей . Никаких детей.
<xsl:output method="xml" omit-xml-declaration="yes" encoding="UTF-8"/>
xsl:параметр Обозначает параметр, который можно передать в шаблон с помощью xsl:call-template . xsl: шаблон . Никаких детей.
<xsl:param name="elem-name"/>
xsl:текст Выводит содержимое тега. Любой родитель. Никаких детей.
<xsl:text>ClaimNumber ClaimSeqNumber</xsl:text>
xsl:значение-из Выводит переменную. select указывает переменную. Любой родитель. Никаких детей.
<xsl:value-of select="$s"/>
xsl: с параметром Обозначает параметр, передаваемый в 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 .

[1]

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

[ редактировать ]

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

Функция Описание/Синтаксис Пример
потолок Функция потолка возвращает наименьшее целое число , равное или превышающее числовое значение аргумента числа.
ceiling(3.57)
конкат Объединяет две или более строк.
concat($fname, ' ', $lname)
содержит [2] Возвращает true, если первая строка содержит вторую строку, в противном случае возвращает false.
contains('string to search', 'find')
считать Функция count подсчитывает и возвращает количество узлов в наборе узлов.
count(elements)
пол Функция Floor возвращает наибольшее целое число, которое равно или меньше числового значения аргумента числа.
floor(3.57)
нормализовать пространство Удаляет пробелы в начале и конце строки
normalize-space($fname)
позиция Функция позиции возвращает значение, основанное на единице. [3] индекс текущего узла, обрабатываемого 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-before('In 1814 we took a little trip', 'we')
сумма Функция sum складывает и возвращает общее значение набора числовых значений в наборе узлов или списке значений.
sum(1,3,7,12)
переводить Принимает строку из аргумента значения, заменяет все вхождения символов в аргументе string1 замещающими символами в том же месте в аргументе string2 и возвращает измененную строку.
translate('band', 'abcd', 'ABCD') = 'BAnD'
[ редактировать ]
  1. ^ «Справочник XSLT» .
  2. ^ «XSLT 1.0: Функция содержит» .
  3. ^ «Пример 16:1» .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: cf5e8f36108ccb1aba608fd1725e2ec0__1642431660
URL1:https://arc.ask3.ru/arc/aa/cf/c0/cf5e8f36108ccb1aba608fd1725e2ec0.html
Заголовок, (Title) документа по адресу, URL1:
XSLT elements - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)