Языки информационного обмена

       

Инструкции управления xsl:if, xsl:for-each, xsl:choose


Элемент xsl:if запускает конструктор последовательности, содержащийся в его теле, только если истинно выражение, записанное в обязательном и единственном атрибуте test:

<xsl:if test="$x > $у"> <xsl:value-of select="$x"o/> больше <xsl:value-of select="$y" /> </xsl:if>

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

У элемента xsl:choose нет ни одного атрибута, но в его теле записывается один или несколько элементов xsl: when и один необязательный элемент xsl:otherwise:

<xsl:choose> <xsl when test="$day=l">Понедельник</xsl:when> <xsl when test="$day=2">Bторник</xsl:when> <xsl when test="$day=3">Cреда</xsl:when> <xsl when test="$day=4">Четверг</xsl:when> <xsl when test="$day=5">Пятница</xsl:when> <xsl when test="$day=6">Cyббота</xsl:when> <xsl when test="$day=7">Воскресенье</xsl:when> <xsl otherwise>Ошибка определения дня нeдeли</xsl:otherwise> </xsl:choose>

У элемента xsl:when есть только один обязательный параметр test, содержащий логическое выражение, и тело, содержащее конструктор последовательности.

Элемент xsl: otherwise не имеет атрибутов, у него есть только тело, содержащее конструктор последовательности.

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



Содержание раздела