Алексей Валиков - Технология XSLT

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
Описание книги "Технология XSLT"
Описание и краткое содержание "Технология XSLT" читать бесплатно онлайн.
Книга посвящена разработке приложений для преобразования XML-документов с использованием XSLT — расширяемого языка стилей для преобразований. Обсуждается применение языков XSLT и XPath в решении практических задач: выводу документов в формате HTML, использованию различных кодировок для интернационализации и, в частности, русификации приложений, вопросам эффективности существующих подходов для решения проблем преобразования. Для иллюстрации материала используется большое количество примеров.
Для начинающих и профессиональных программистов
<sum>1</sum>
<sum>4</sum>
<sum>9</sum>
<sum>16</sum>
<sum>25</sum>
</list>
В этом преобразовании мы заменяем каждый элемент item на сумму значений предшествующих ему элементов плюс собственное значение. Предшествующие элементы выбираются путем выборки preceding-sibling::item, текущий элемент — сокращенным путем ".", затем эти два множества объединяются при помощи оператора |, и, наконец, мы вычисляем сумму значений узлов, входящих в них функцией sum.
Строковые значения суммируемых узлов преобразовываются в числовой формат так же, как они преобразовывались бы функцией number. Например, если входящий документ будет иметь вид
<list>
<item>1</item>
<item>3</item>
<item>five</item>
<item>7</item>
<item>9</item>
</list>
то на выходе мы получим
<list>
<sum>1</sum>
<sum>4</sum>
<sum>NaN</sum>
<sum>NaN</sum>
<sum>NaN</sum>
</list>
потому что, начиная с третьего элемента, в суммировании будет участвовать значение number('five'), то есть не-число (NaN).
Функции floor и ceiling
number floor(number)
number ceiling(number)
Функции floor и ceiling (англ. пол и потолок соответственно) осуществляют округление численного аргумента до ближайшего не большего и ближайшего не меньшего целого соответственно.
Примерыfloor(2.3) → 2
ceiling(2.3) → 3
floor(-2.3) → -3
ceiling(-2.3) → -2
floor(-1 div 0) → -Infinity
ceiling(-1 div 0) → -Infinity
floor('zero') → NaN
ceiling(-1 div (-1 div 0)) → 0
Функция round
number round(number)
Функция round округляет число до ближайшего целого значения. У этой функции есть несколько нюансов, которые мы сейчас разберем.
□ Если дробная часть числа равна 0.5, то функция вернет ближайшее большее целое.
□ Если аргумент является не-числом (NaN), то результат также будет NaN.
□ Если аргумент является положительной или отрицательной бесконечностью, то результатом будет тоже положительная или отрицательная бесконечность, то есть аргумент не изменится.
□ Если аргумент является положительным или отрицательным нулем, результатом будет также положительный или отрицательный нуль, то есть аргумент не изменится.
□ Если аргумент меньше нуля, но больше или равен — 0.5, результатом будет отрицательный нуль.
Примерыround(2.5) → 3
round(2.49) → 2
round(-1.7) → -2
1 div round(0.5) → Infinity
1 div round(-0.5) → -Infinity
round(1 div 0) → Infinity
round('one') → NaN
Строковые функции
Функция string
string string(object?)
Подобно функциям boolean и number, функция string преобразует свой аргумент к строковому типу явным образом. Если аргумент опущен, функции передается множество узлов, состоящее из единственного контекстного узла.
Напомним вкратце правила приведения других типов к строке.
□ Булевые значения преобразуются в строку следующим образом:
• "истина" (true) преобразуется в строку "true";
• "ложь" (false) преобразуется в строку "false".
□ Числа преобразуются к строковому виду следующим образом:
• не-число (NaN) преобразуется в строку "NaN";
• положительный нуль преобразуется в строку "0";
• отрицательный нуль преобразуется в строку "0";
• положительная бесконечность преобразуется в строку "Infinity";
• отрицательная бесконечность преобразуется в строку "-Infinity";
• положительные целые преобразуются в свое десятичное представление без ведущих нулей и без точки ("."), отделяющей дробную часть от целой;
• отрицательные целые преобразуются так же, как и положительные, но с начальным знаком "минус" ("-");
• остальные числа преобразуются в десятичное представление с использованием точки ("."), отделяющей целую часть от дробной части; целая часть не содержит ведущих нулей (кроме случая с числами в интервале (-1;1)), дробная часть содержит столько цифр, сколько требуется для точного представления числа.
□ Множество узлов преобразуется в строковое значение своего первого в порядке просмотра документа узла. Если множество пусто, функция возвращает пустую строку.
□ Объекты других типов преобразуются в строку в соответствии с собственными правилами. Например, результирующий фрагмент дерева преобразуется в конкатенацию всех своих строковых узлов.
Примерыstring(boolean(0)) → false
string(number('zero')) → NaN
string(number('.50000')) →0.5
string(number(00500.)) → 500
Для строкового форматирования чисел рекомендуется использовать функцию XSLT format-number совместно с элементом xsl:decimal-format.
Функция concat
string concat(string, string, string*)
Функция concat принимает на вход две или более строки и возвращает конкатенацию (строковое сложение) своих аргументов.
Пример:
concat('not','with','standing',' problem') → 'notwithstanding problem'
Функция starts-with
boolean starts-with(string, string)
Функция starts-with принимает на вход два строковых аргумента и возвращает true, если первая строка начинается второй и false в противном случае.
starts-with('http://www.xsltdev.ru', 'http') → true
starts-with('Title', 'ti') → false
Функция contains
boolean contains(string, string)
Функция contains принимает на вход два строковых аргумента и возвращает true, если первая строка содержит вторую и false в противном случае.
contains('[email protected]', '(@') → true
Функция substring-before
string substring-before(string, string)
Функция substring-before принимает на вход два строковых аргумента. Эта функция находит в первой строке вторую и возвращает подстроку, которая ей предшествует. Если вторая строка не содержится в первой, функция вернет пустую строку.
Примерыsubstring-before('12-May-1998', '-') → '12'
substring-before('12 May 1998', ' ') → '12'
substring-before('12 May 1998', ' ') → '12'
substring-before('12 May 1998', '-') → ''
Функция substring-after
string substring-after(string, string)
Эта функция аналогична функции substring-before, только она возвращает строку, которая следует за вторым аргументом. Если вторая строка не содержится в первой, эта функция также вернет пустую строку.
Примерыsubstring-after('12-May-1998', '-') → 'May-1998'
substring-after('12 May 1998', ' ') → 'May 1998'
substring-after('12 May 1998', ' ') → 'May 1998'
substring-after('12 May 1998', '-') → ''
Функция substring
string substring(string, number, number?)
Функция substring возвращает подстроку переданного ей строкового аргумента, которая начинается с позиции, указанной вторым аргументом и длиной, указанной третьим аргументом. Если третий аргумент опущен, подстрока продолжается до конца строки. Если численные аргументы являются нецелыми, они округляются при помощи функции round.
В XPath позицией первого символа является 1, а не 0, как в некоторых других языках программирования.
При вычислении подстроки учитываются следующие условия.
□ Если первый численный аргумент меньше 1 (это относится и к отрицательной бесконечности), то подстрока начинается с начала строки.
□ Если первый численный аргумент больше длины строки (это относится и к положительной бесконечности), то подстрока будет пустой.
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "Технология XSLT"
Книги похожие на "Технология XSLT" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "Алексей Валиков - Технология XSLT"
Отзывы читателей о книге "Технология XSLT", комментарии и мнения людей о произведении.