Speak.Me Учить иностранные слова

XSL: управляющие инструкции xsl:for-each, xsl:if, xsl:choose, xsl:when, xsl:otherwise

Ходом выполнения преобразования в XSLT, как и в других языках программирования, можно управлять. Для этого предусмотрены инструкции xsl:for-each, xsl:if, xsl:choose, xsl:when, xsl:otherwise.

Инструкция xsl:for-each

Инструкция xsl:for-each позволяет организовать циклическую обработку узлов, или, проще говоря, повторение. Она будет полезна если для ряда узлов необходимо выполнить одни и те же действия.

Синтаксис:

Атрибуты:

  • select – обязательный атрибут, содержит выражение на языке XPath, результатом обработки которого должен быть набор узлов. Для каждого узла из этого набора будут выполнены инструкции и фиксированные конечные элементы, содержащиеся внутри инструкции xsl:for-each. Узлы обрабатываются в том порядке, как они следуют в исходном дереве, если нет указаний относительно сортировки.

Инструкция xsl:if

Инструкция xsl:if позволяет выполнить обработку с условием. Она аналогична конструкции if-then, присутствующей во многих языках программирования.

Синтаксис:

Атрибуты:

  • test – обязательный атрибут, задает выражение на языке XPath. Это выражение обрабатывается, а его результат преобразуется в булево значение. Если результатом является true, содержащиеся внутри элемента xsl:if инструкции и фиксированные конечные элементы выполняются. Если результатом является false, никаких действий не производится.

Инструкции xsl:choose, xsl:when, xsl:otherwise

Инструкции xsl:choose, xsl:when, xsl:otherwise образую конструкцию, которая позволяет выполнить более сложную по сравнению с инструкцией xsl:if обработку с условием. Она позволяет выбрать из нескольких альтернативных вариантов один.

Синтаксис:

Элемент xsl:choose содержит один или несколько элементов xsl:when и необязательный элемент xsl:otherwise. Элементы xsl:when и xsl:otherwise содержат другие инструкции и фиксированные конечные элементы. Когда процессор встречает конструкцию xsl:choose, он поочередно проверяет все содержащиеся в ней элементы xsl:when.

Каждый элемент xsl:when имеет единственный атрибут test, являющийся обязательным. Значением данного атрибута является выражение на языке XPath. Это выражение обрабатывается, а его результат преобразуется в булево значение. Если результатом является true, содержащиеся внутри элемента xsl:when инструкции и фиксированные конечные элементы выполняются, и обработка конструкции xsl:choose прекращается. То есть выполняется содержимое только первого элемента xsl:when, при проверке которого было получено true.

Если результатом является false, процессор переходит к следующему элементу xsl:when. Если ни один из элементов xsl:when не показал true, выполняются инструкции из элемента xsl:otherwise. Если же он отсутствует, то никаких действий не производится вообще.