Вход/Регистрация
Технология XSLT
вернуться

Валиков Алексей Н.

Шрифт:

определяет функцию

concat
, которая возвращает строку, а на вход принимает два или более строковых параметра.

Аргументы функции отвечают EBNF-продукции

Argument
:

[XP17] Argument ::= Expr

Имя функции определяется синтаксическим правилом

FunctionName
. Функция может иметь любое корректное с точки зрения XML имя, кроме названий типов узлов (
comment
,
processing-instruction
,
text
и
node
):

[XP35] FunctionName ::= QName - NodeType

В базовой библиотеке XPath выделяют четыре типа функций: функции для работы с булевыми значениями, с числами, со строками и с множествами узлов.

Булевые функции

Функция boolean

boolean boolean(object)

Функция

boolean
явным образом преобразует объект, который ей передается в булевый тип в соответствии с правилами, изложенными в главе "Типы данных XPath". Напомним вкратце эти правила.

□ Число преобразуется в "ложь", если оно является положительным или отрицательным нулем или не-числом (

NaN
). В противном случае число будет преобразовано в "истину".

□ Строка преобразуется в "ложь", если она не содержит символов, то есть, ее длина равна нулю. Непустая строка преобразуется в "истину".

□ Множество узлов преобразуется в "ложь", если оно пусто. Непустое множество узлов преобразуется в "истину".

□ Объекты других типов преобразуются в булевые значения по собственным правилам. Например, результирующий фрагмент дерева всегда преобразуется в "истину".

Примеры:

boolean(2-2)
→
false

boolean(number('two'))
→
false

boolean(-1)
→
true

boolean(1 div 0)
→
true

boolean(-1 div (1 div 0))
→
false

boolean(-1 div (-1 div 0))
→
false

boolean(-1 div (-1 div 0) +1)
→
true

boolean('')
→
false

boolean('true')
→
true

boolean('false')
→
true

boolean(/)
→
true

Это выражение всегда будет обращаться в

true
, поскольку у документа всегда есть корневой узел.

boolean(/self::node)
→
true

Это выражение также обратится в

true
, поскольку корневой узел соответствует тесту
node
.

boolean(/self::text)
→
false

Это выражение обратится в

false
, поскольку корневой узел не является текстовым узлом.

Функция not

boolean not(boolean)

Функция

not
выполняет логическое отрицание. Если аргументом была "истина",
not
возвращает "ложь", если аргумент был "ложью",
not
вернет "истину". Если функции был передан аргумент не булевого типа (например, число), то он сначала будет сконвертирован в тип
boolean
.

Примеры:

not(false)
→
true

not(true)
→
false

not('false')
→
false

not('true')
→
false

not(0)
→
true

not(/)
→
false

Функции true и false

boolean true

boolean false

Две функции

true
и
false
возвращают тождественную "истину" и тождественную "ложь" соответственно. В XPath нет констант и, тем более, логических констант, определяющих "истину" и "ложь", как в других языках. Функции
true
и
false
восполняют эту нехватку.

Примеры:

true or $var
→
true

Это выражение всегда будет истинным вне зависимости от значения переменной

var
, поскольку дизъюнкция (логическая операция "или") с тождественной "истиной" всегда будет "истиной".

  • Читать дальше
  • 1
  • ...
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: