Наиболее часто используемые XSLT и XPath функции
Функции XSLT
- node-set current() — возвращает текущий узел преобразования;
- node-set document(object, node-set) — позволяет обращаться к внешним документам по заданным URI. Первый узел необязательного параметра node-set принимается за точку отсчета для относительных URI;
- boolean element-available(string) — проверяет доступность элемента или множества, указанного в параметре. В качестве параметра принимает строку - имя искомого элемента;
- string format-number(number, format, name?) — возвращает число number в виде строки, отформатированной в соответствии с параметром format. Необязательный параметр name - это имя QName, задающее формат в соответствии правилами элемента <xsl:decimal-format>;
- boolean function-available(string) — проверяет доступность функции указанной в параметре. В качестве параметра принимает строку - имя функции;
- string generate-id(node-set) — присваивает уникальный строковый идентификатор первому узлу переданного множества node-set или контекстного узла, если аргумент опущен;
- node-set key(name, value) — по данному имени name и значению ключа value возвращает множество узлов, которые им обладают. Ключи создаются при помощи элемента <xsl:key>;
- string system-property(string)— возвращает значения системных свойств, имя которых передается как аргумент;
- xsl:version — возвращает версию XSLT процессора;
- xsl:vendor — возвращает производителя XSLT процессора;
- xsl:vendor-url — возвращает URL, идентифицирующий производителя.
- string unparsed-entity-uri(string) — предоставляет доступ к не разбираемым сущностям, возвращая URI сущности по ее имени.
Функции XPath
Логические функции
- boolean boolean(object)— функция возвращает логическое значение переданного ей объекта;
- number — если число равно нулю возвращает ложь, иначе — истину. NaN всегда возвращает ложь;
- string — если строка не пуста возвращает истину, иначе — ложь;
- boolean — значение не изменяется;
- node-set — пустой набор узлов дает ложь, иначе — истину.
- boolean false() — функция возвращает ложь;
- boolean lang(string) — функция проверяет соответствие языка контекстного узла(определенного параметром xml:lang) переданному ей языку в виде строки string;
- boolean not(boolean) — выполняет логическое отрицание;
- boolean true() — функция возвращает истину.
Числовые функции
- number ceiling(number) — округляет аргумент до ближайшего целого, не меньшего переданного функции числа;
- number floor(number) — округляет аргумент до ближайшего целого, не большего переданного функции числа;
- number number(object?) — явным образом приводит переданный функции объект в числовой тип. Если аргумент опущен, то применяется к множеству контекстного узла;
- number round(number) — округляет аргумент до ближайшего целого значения;
- number sum(node-set) — суммирует значения узлов переданного ей множества.
Строковые функции
- string concat(string, string, …) — возвращает конкатенацию аргументов;
- boolean contains(string, string) — принимает на вход два строковых аргумента и возвращает true, если первая строка содержит вторую и false в противном случае;
- string normalize-space(string?) — удаляет начальные и завершающие разделительные символы, нормализует все внутренние идущие подряд разделители в один пробел. Если аргумент опущен, выполняется со строковым значением контекстного узла;
- boolean starts-with(string, string) — принимает на вход два строковых аргумента и проверяет начинается ли первая строка со второй;
- string string(object?) — приводит объект к строковому типу явным образом. Если аргумент опущен, то применяется к множеству контекстного узла;
- number string-length(string?) — возвращает длину переданного ей строкового аргумента. Если аргумент опущен, то применяется к контекстному узлу;
- string substring(string, number, number?) — возвращает подстроку переданного ей строкового аргумента, начинающуюся с позиции определенной вторым аргументом и длиной, указанной третьим аргументом. Если третий аргумент не передан, то подстрока продолжается до конца строки;
- string substring-after(string, string) — принимает на вход два строковых аргумента, находит в первой строке вторую и возвращает подстроку, которая за ней следует;
- string substring-before(string, string) — принимает на вход два строковых аргумента, находит в первой строке вторую и возвращает подстроку, которая ей предшествует;
- string translate(string, string, string) — производит замену символов первого своего строкового аргумента, которые присутствуют во втором аргументе на соответствующие символы третьего аргумента.
Функции для работы с наборами узлов
- number count(node-set) — возвращает число узлов в наборе node-set, переданного ей в качестве аргумента;
- node-set id(id-value) — возвращает множество узлов по уникальным идентификаторам;
- number last() — возвращает позицию последнего узла в наборе узлов;
- string local-name(node-set?) — возвращает локальное (неполное) имя узла, или имя первого узла множества. Если node-set не передан, функция вернет имя контекстного узла;
- string name(node-set?) — возвращает полное имя узла, или имя первого узла множества. Если node-set не передан, функция вернет локальную часть имени контекстного узла;
- string namespace-uri(node-set?) — возвращает URI пространства имен а расширенном имени узла;
- number position() — возвращает позицию контекстного узла в наборе узлов.