Книга: Технология XSLT
Функция current
Функция current
Выражение для этой функции имеет вид:
node-set current()
Функция current
возвращает множество, состоящее из текущего узла преобразования.
Мы часто использовали термины текущий узел и узел контекста как синонимы: действительно, в большинстве случаев между ними нет никакой разницы, текущий узел преобразования совпадает с узлом контекста вычисления выражений. Однако бывают ситуации, когда они являются двумя различными узлами.
Представим себе, что нам нужно выбрать элементы item
со значением атрибута source
, равным значению этого атрибута текущего узла. Очевидно, путь выборки будет выглядеть как item[предикат]
, где предикат определяет условие равенства атрибутов текущего и выбираемого. Но как записать это условие? Предикат будет вычисляться в контексте проверяемого элемента item
, значит, все относительные пути выборки типа @source
или ./@source
или self::item/@source
будут отсчитываться именно от проверяемого элемента. В этом случае узел контекста и текущий узел преобразования — не одно и то же.
Для того чтобы обратиться в предикате именно к текущему узлу, следует использовать функцию current
:
item[@source=current()/@source]
Это выражение выберет все дочерние элементы item
текущего узла, значение атрибута source
которых будет таким же, как и у него.
- Функция generate-id
- 1.3.17 Current Sink
- 2.1.3. Функция getopt_long()
- Группировка по встроенным функциям и UDF
- 19.1.1. Функция jQuery()
- Функция strcmp( )
- Управление функциями узла
- Функция программного обеспечения
- 3.2. Ключи типа key_t и функция ftok
- 9.10. Функция sctp_recvmsg
- Функция document
- Convection Currents of Information