Контекст преобразования
При выполнении преобразования каждая из его инструкций, каждый из элементов обрабатывается в некотором контексте. Контекст преобразования состоит из двух частей: из текущего множества узлов и из текущего узла, которые показывают, что именно обрабатывается в данный момент. XSLT-процессор поочередно обрабатывает каждый из узлов текущего множества (при этом делая этот узел текущим узлом) и объединяет результаты в одно дерево.
Контекст преобразования тесно связан с контекстом вычисления выражений:
текущий узел контекста преобразования соответствует контекстному узлу вычисления выражений;
позиция текущего узла в текущем обрабатываемом множестве соответствует позиции контекста вычисления выражений;
размер текущего множества узлов соответствует размеру контекста вычисления выражений.
Контекст преобразования может изменяться только двумя элементами — xsl:apply-templates
и xsl:for-each
. Каждый из этих элементов вычисляет множество узлов, которое становится текущим и затем обрабатывается. После этого контекст преобразования восстанавливается до того состояния, каким он был перед обработкой.
Изменения контекста могут быть продемонстрированы на следующем примере.