xsl:on-non-empty¶
Используется для того, чтобы сделать потоковой конструкцию условного содержимого. Выводит вложенное содержимое только в том случае, если содержащая его последовательность также генерирует "обычное" содержимое.
Инструкция может появиться в любом месте конструктора последовательности (и не один раз). Содержимое выводится в соответствующем месте среди "обычного" вывода.
Хотя эта инструкция предназначена в первую очередь для облегчения написания потоковых приложений, она может быть полезна и независимо от потоковой передачи, чтобы избежать неоднократной оценки сложных условий.
Доступно в XSLT 3.0. Начиная с версии Saxon 9.8, доступна во всех изданиях. Реализована в Saxon-PE и Saxon-EE начиная с Saxon 9.7.
- Категория: инструкция
- Содержимое: sequence-constructor
- Допустимые родительские элементы: любой элемент XSLT, модель содержимого которого - sequence-constructor; любой литеральный элемент результата
Атрибуты¶
select?
- expression
Заметки по реализации Saxon¶
Новый в XSLT 3.0 и реализованный начиная с Saxon 9.7.
Примеры¶
Следующий код генерирует верхний и нижний колонтитулы только при наличии содержимого, однако он не является гарантированно потоковым, поскольку обрабатывает дочерние элементы item-for-sale
более одного раза:
1 2 3 4 5 6 7 |
|
Чтобы сделать его потоковым, его можно переписать с помощью инструкции xsl:on-non-empty
:
1 2 3 4 5 6 7 8 9 |
|