Книга: Технология XSLT
Другие дополнительные функции XSLT
Функция current
Выражение для этой функции имеет вид:
node-set current()
Функция current
возвращает множество, состоящее из текущего узла преобразования.
Мы часто использовали термины текущий узел и узел контекста как синонимы: действительно, в большинстве случаев между ними нет никакой разницы, текущий узел преобразования совпадает с узлом контекста вычисления выражений. Однако бывают ситуации, когда они являются двумя различными узлами.
Представим себе, что нам нужно выбрать элементы item
со значением атрибута source
, равным значению этого атрибута текущего узла. Очевидно, путь выборки будет выглядеть как item[предикат]
, где предикат определяет условие равенства атрибутов текущего и выбираемого. Но как записать это условие? Предикат будет вычисляться в контексте проверяемого элемента item
, значит, все относительные пути выборки типа @source
или ./@source
или self::item/@source
будут отсчитываться именно от проверяемого элемента. В этом случае узел контекста и текущий узел преобразования — не одно и то же.
Для того чтобы обратиться в предикате именно к текущему узлу, следует использовать функцию current
:
item[@source=current()/@source]
Это выражение выберет все дочерние элементы item
текущего узла, значение атрибута source
которых будет таким же, как и у него.
- Глава 8 Дополнительные элементы и функции языка XSLT
- Приложение 4 Интернет-ресурсы, посвященные XSLT
- Другие инструменты для осуществления резервного копирования
- Аргументы функции в Python
- Дополнительные национальные кодовые страницы и порядки сортировки
- 3. Функции
- Новые функции API для работы с Blob и массивами
- Другие изменения в 7-й версии InterBase
- Использование отдельных процессоров XSLT
- Глава 8 Дополнительные службы
- Датчик расположения и другие датчики
- 6.4 Другие файловые системы