Эта книга посвящена XSLT - мощным и удобным системам преобразования документов. В ней не только рассматривается весь синтаксис XSLT, от основ до специальных аспектов, но и подробно излагаются современные способы использования XSLT. Вы найдете сотни практических примеров, таких как осуществление преобразований XSLT на web-серверах, подключение к базам данных и использование браузеров для осуществления преобразований на лету. Книга рассчитана на всех, кто хочет изучать XSLT и использовать его на практике.
Вот как это можно . В эту функцию передается строка, подстрока, которую нужно найти внутри строки, — и функция возвращает подстроку, расположенную после совпадающей части строки, если она была найдена. Функция применяется следующим образом. Функция применяется следующим образом. Функция применяется следующим образом. В следующем примере такая функция . . В этом примере я просто привожу строку к нижнему регистру. Возвращает наименьшее целое, большее переданного функции числа. Возвращает наибольшее целое, меньшее переданного функции числа. Приводит переданный ей параметр к числу. Округляет переданное функции число до ближайшего цёлогО. Возвращает сумму переданных функции чисел. В следующих разделах мы рассмотрим примеры применения каждой из этих функций. Она возвращает наибольшее целое, которое все еще меньше переданного ей числа. Другими словами, функция возвращает предыдущее целое. Функция применяется следующим образом. Функция применяется следующим образом. Если вы попытаетесь преобразовать что. Функция применяется следующим образом. Функция применяется следующим образом. Приводит аргумент к логическому значению. Проверяет, совпадает ли язык, установленный в атрибуте . Функция применяется следующим образом. Если число равно нулю, результатом будет ложь. Если строка не пуста, результат — истина, иначе — ложь. Пустой набор узлов дает ложь, не пустой — истину. Она применяется следующим образом. Функция применяется следующим образом. В следующем примере я проверяю, написан ли исходный документ на английском. Сначала я устанавливаю атрибут . При передаче аргумента с логическим значением . Функция применяется следующим образом. Для этого я применяю предикат выбора . Для того, чтобы убрать другие элементы . Она применяется следующим образом. В частности, при помощи этого элемента определяются символы и идентификаторы, которые будет использовать . У этого элемента несколько атрибутов. Если формат не задан, используется десятичный формат по умолчанию. Определяет символ, разделяющий целую и дробную части числа. По згмолчанию Устанавливается в символ. Определяет символ, разделяющий группы разрядов. Задает строку, обозначающую положительную бесконечность. Определяет символ, представляющий знак минуса. Определяет строку, представляющую значение . Определяет символ, представляющий знак процента. Определяет символ, представляющий знак промилле, то есть тысячных долей. Определяет символ для использования в форматирующих строках для указания лидирующего или завершающего нуля. Определяет символ для использования в форматирующих строках для указания цифры. Определяет символ, разделяющий образцы для положительных и отрицательных чисел. Этот элемент — верхнего уровня, и он всегда пуст. При помощи этого элемента можно устанавливать форматирующие символы для функции . Наличие более одного элемента . В следующем примере я форматирую числа в . Для этого мне нужно только задать новое форматирование при помощи . . Задание десятичных форматов . На этом мы заканчиваем рассмотрение функций . Все эти темы связаны друг с другом. Если задать шаблону имя, его можно вызывать по этому имени при ПомбШи элемента . Шаблон применяется при вызове, поэтому вместо того чтобы полагаться на обработку таблицы стилей, принятую в процессоре . Например, несколько шаблонов могут выбирать один н тот же набор узлов, и вам нужно выбрать из них один или несколько шаблонов, которые будут применены. Именованные шаблоны похожи на режимы, но дают вам больше возможностей управления. , При вызове шаблона можно настроить его работу при помощи параметров. Например,, вам может понадобиться, чтобы текст в создаваемых шаблоном текстовых узлах был на определенном языке — таком как английский, немецкий или французский — и вы можете создать новый параметр с именем . При вызове именованного шаблона, заданного для обработки этого параметра, вы можете установить язык в . В самом именованном шаблоне используемый им параметр . После объявления параметра к его значению можно с. и использоэать его э выражениях . В этой главе мы рассмотрим многочисленные примеры работы с параметрами. Переменные во многом похожи на параметры, с тем лишь отличием, что они по. Параметры, как правило, используются в именованных шаблонах, вто время как переменные . Как и в языках программирования, в переменрых . Но есть одна важная особенность. Как и в параметрах, в переменных можно хранить данные всех четырех типов данных . Переменные также имеет смысл применять для хранения значений, которые позже в шаблоне будут изменены. Для того чтобы обратиться к контекстному узлу, перед входом в цикл . Кроме четырех типов данных . Фрагменты результирующего дерева могут быть удобны в определенных случаях, как вы увидите далее в этой главе. , . Впервые он нам встретился в главе . Для введения вполне достаточно. , Имя переменной, устанавливаете. Если опустить этот атрибут, значение переменной будет определяться содержимым . Элемент может сам содержать тело шаблона, но в таком случае нельзя использовать атрибут . Стоит отметить, что имя переменной может включать префикс, как, например, . Сравнения осуществляются не сравнением префиксов, а проверкой фактического . Йёременныё, созданные в элементах . Область видимости переменной определяет, в какой части таблицы стилей вы можете ее использовать. Областью видимости глобальной переменной является вся таблица стилей, подразумевая и импортированные или включенные таблицы стилей. Это означает, что переменная доступна в любом месте таблицы стилей, если только она не будет перекрыта локальной переменной с тем же именем. Можно даже обращаться к глобальной переменной до ее . Одцако цел|зя создавать циклические ссылки . Область видимости локальной переменной ограничена следующими за ней братьями или потомками последующих братьев. В частности это значит, что если вы объявили переменную внутри таких элементов, как . Заметьте, однако, что нельзя снова объявить одну и ту же переменную в одном шаблоне с целью попытаться изменить ее значение.