Стивен Холзнер - XSLT
- Название:XSLT
- Автор:
- Жанр:
- Издательство:Питер
- Год:2002
- Город:Санкт-Петербург
- ISBN:5-94723-271-5
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стивен Холзнер - XSLT краткое содержание
Эта книга посвящена XSLT — мощным и удобным системам преобразования документов. В ней не только рассматривается весь синтаксис XSLT, от основ до специальных аспектов, но и подробно излагаются современные способы использования XSLT.
Вы найдете сотни практических примеров, таких как осуществление преобразований XSLT на web-cepвepax, подключение к базам данных и использование браузеров для осуществления преобразований на лету.
Книга рассчитана на всех, кто хочет изучать XSLT и использовать его на практике
XSLT - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
.
.
.
.
.
.
Конечно, если нужно только выбрать первый дочерний элемент контекстного узла, проще воспользоваться NAME[1]
.
string-length()
Как можно предположить, функция string-length
возвращает длину (length) переданной ей строки. Функция применяется таким образом:
number string-length(string?)
В следующем примере я определяю длину названия каждой планеты при помощи string-length
:
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Length of Planet Names
Length of Planet Names
is
characters long.
А вот результат:
Length of Planet Names
Length of Planet Names
Mercury is 7 characters long.
Venus is 5 characters long.
Earth is 5 characters long.
Этот результирующий документ показан на рис. 8.2.

Рис. 8.2.Определение длины строк в XSLT
substring()
Функция
substring
возвращает подстроку переданной ей строки. Функция применяется следующим образом:
string substring(source-string, start-position, number-of-characters?)
Функция принимает параметры source-string
(исходная строка), start-position
(начальная позиция) и необязательный параметр number-of-characters
(количество символов). Функция возвращает подстроку исходной строки с начальной позиции и до указанного количества символов или до конца строки, если это количество не задано.
Функция substring
— одна из трех функций, оперирующих с подстроками: substring-before
, возвращающая строку перед найденной подстрокой, сама substring
, возвращающая заданную подстроку, и substring-after
, возвращающая строку после найденной подстроки. В следующем примере (листинг 8.9) задействованы все три функции: в этом случае я разбил название планеты Меркурий (Mercury) на три подстроки — «Mer», «c» и «ury» — и затем объединил их снова. Вот как это можно сделать при помощи трех рассматриваемых функций (дополнительная информация о substring-before
и substring-after
приведена в следующих двух разделах).
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Planetary Information
Planetary Information
The first planet is
.
Вот результирующий документ, созданный этим преобразованием:
Planetary Information
Planetary Information
The first planet is Mercury.
substring-after()
Функция
substring-after
возвращает подстроку, которая следует за найденной строкой. В эту функцию передается строка, подстрока, которую нужно найти внутри строки, — и функция возвращает подстроку, расположенную после совпадающей части строки, если она была найдена; иначе функция возвращает пустую строку. Функция применяется следующим образом:
string substring-after(string, string-to-match)
substring-before()
В функцию substring-before
передается строка, подстрока, которую нужно найти внутри строки, и функция возвращает подстроку, расположенную перед совпадающей частью строки, если она была найдена; иначе функция возвращает пустую строку. Функция применяется следующим образом:
string substring-before(string, string-to-match)
В разделе substring()
приведен пример применения функций substring-before
, substring
и substring-after
.
translate()
Функция translate
служит для перевода или замены определенных символов. (Эта функция во многом похожа на операцию tr в Perl, если вы знакомы с операциями.) В функцию передаются две строки: одна задает список символов поиска, вторая задает список символов, которыми нужно заменить найденные символы. Функция применяется следующим образом:
string translate(string, from-characters, to-characters)
Например, если третий символ из from-characters
будет найден в string
, то третий символ из to-characters
заменит его в результирующей строке. В следующем примере такая функция translate
translate("steve-starpowder.com", "-", "@")
возвратит результирующую строку «steve@starpowder.com».
В этом примере я просто привожу строку к нижнему регистру:
translate("XSLT", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklmnopqrstuvwxyz")
Функции XPath для работы с числами
В XPath имеются следующие функции для работы с числами:
• ceiling()
. Возвращает наименьшее целое, большее переданного функции числа,
• floor()
. Возвращает наибольшее целое, меньшее переданного функции числа;
• number()
. Приводит переданный ей параметр к числу;
• round()
. Округляет переданное функции число до ближайшего целого;
• sum()
. Возвращает сумму переданных функции чисел.
В следующих разделах мы рассмотрим примеры применения каждой из этих функций.
ceiling()
Функция ceiling
возвращает наименьшее целое, которое все еще больше переданного функции числа, то есть она возвращает следующее большее целое. Функция применяется следующим образом:
number ceiling(number)
Например, выражение
ceiling(3.1415926535)
возвращает 4.
floor()
Функция floor
— парная к функции ceiling
. Она возвращает наибольшее целое, которое все еще меньше переданного ей числа. Другими словами, функция возвращает предыдущее целое. Функция применяется следующим образом:
number floor(number)
В этом примере я при помощи floor
преобразую длительность дней планет в целые числа:
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
.
.
.
А вот результирующий документ:
The Planets Table
The Planets Table
Name | Mass | Radius | Day |
Mercury | .0553 (Earth = 1) | 1516 miles | 58 days |
Venus | .815 (Earth = 1) | 3716 miles | 116 days |
Earth | 1 (Earth = 1) | 2107 miles | 1 days |
number()
Функция
number
приводит свой аргумент к числу. Функция применяется следующим образом:
number number(object?)
В этом примере я передаю number
строку:
number("456.7")
Это выражение возвращает число 456.7. Если вы попытаетесь преобразовать что-то, что number
не сможет перевести в число, функция вернет значение XPath NaN
(Not a Number, не число). NaN
— корректное значение, которое можно проверять в выражениях Xpath.
round()
Функция round
округляет переданное ей значение. Функция применяется следующим образом:
number round(number)
Например, round(3.1415926535)
возвращает 3, round(4.5)
возвращает 5 и round(-1.5)
возвращает -1.
sum()
Интервал:
Закладка: