xsl:value-of¶
Элемент xsl:value-of
служит для вычисления значений выражений.
Синтаксис¶
1 2 3 4 |
|
Атрибуты:
select
- обязательный атрибут, задает выражение, которое вычисляется процессором, затем преобразовывается в строку и выводится в результирующем дереве в виде текстового узла. Процессор не станет создавать текстовый узел, если результатом вычисления выражения была пустая строка. В целях оптимизации дерева, соседствующие текстовые узлы будут объединены в один.
disable-output-escaping
- необязательный атрибут, служит для вывода специальных символов, которые в противном случае были бы заменены сущностями.
Описание и примеры¶
Элемент xsl:value-of
очень похож на элемент xsl:copy-of
, только в отличие от последнего он сначала преобразовывает вычисленное выражение к строковому виду, а уж затем выводит его в выходящий документ. Иными словами, выражение
1 |
|
равносильно
1 |
|
Соответственно, преобразование различных типов данных в строковый тип производится точно так же, как если бы мы использовали для этой цели функцию string
.
Пример 1¶
Для составления таблицы умножения можно воспользоваться следующим преобразованием.
Листинг 7.14. Входящий документ
1 2 3 4 5 6 7 8 9 10 11 |
|
Листинг 7.15. Преобразование, создающее таблицу умножения
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
Листинг 7.16. Выходящий документ
1 2 3 4 5 6 7 8 9 |
|
В данном случае элемент xsl:value-of
используется для вычисления произведения переменных a
и b
. Численный результат преобразуется в строку и выводится в выходящий документ в виде текста.
Равно, как и xsl:text
, элемент xsl:value-of
может иметь атрибут disable-output-escaping
, полезный для вывода специальных символов, которые в противном случае были бы заменены сущностями.
Пример 2¶
Результатом выполнения элемента
1 |
|
будет текстовый узел
1 |
|
Чтобы придать амперсанту более привычный вид, мы можем использовать атрибут disable-output-escaping
:
1 2 3 4 |
|
Результатом выполнения этого шаблона уже будет текст:
1 |
|
См. также¶
Ссылки¶
xsl:value-of
MDN (рус.)xsl:value-of
MSDN (en)