Валиков Алексей Н.
Шрифт:
Это преобразование легко понять, если обратиться к рис. 3.18.
Рис. 3.18. Генерация выходящего дерева с использованием переменных
Переменной
Дерево может быть преобразовано в булевое значение, число или строку. Некоторые процессоры позволяют также преобразовывать дерево во множество узлов, которое содержит единственный элемент — корневой узел этого дерева. Такие возможности бывают весьма полезными, но не являются, к сожалению, стандартными в текущей версии языка.
При преобразовании результирующего фрагмента дерева в булевое значение результатом всегда будет true, поскольку дерево никогда не бывает "пустым" — в нем всегда присутствует корневой узел.
При преобразовании дерева в строку результатом является конкатенация (строковое сложение) всех текстовых узлов дерева в порядке просмотра.
Результирующий фрагмент дерева
приводится к строке
При приведении дерева к числу, оно сначала преобразовывается в строку, а затем в число. Это означает, что деревья, в принципе, можно использовать в арифметических операциях, несмотря на то, что они для этого не предназначены.
Таблица преобразования типов
Для удобства использования все взаимные преобразования типов сведены в одну таблицу (табл. 3.2).
Таблица 3.2. Взаимные преобразования типов данных XSLT