XSLT — страница 43 из 124

>
, каждый с условием
true/false
. Применяется тело шаблона в первом элементе
, чье условие имеет значение
true
, все остальные не применяются. Последним элементом внутри элемента
может быть элемент
тело шаблона внутри этого элемента применяется, если ни одно из предыдущих условий
не имело значения
true
:

В предыдущем разделе для осуществления этого преобразования нам потребовалось три элемента

:

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

</code></pre></p><p><pre><code>    The Planets</code></pre></p><p><pre><code>

    The first three planets are: 


    Each planet must have a name!

, 

.

Теперь то же самое можно сделать при помощи единственного элемента

:

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

</code></pre></p><p><pre><code>    The Planets</code></pre></p><p><pre><code>

    The first three planets are: 


    Each planet must have a name!

   .

   .

   .

Нам нужно проверить, в каком месте документа мы находимся, при помощи включения нескольких элементов

. У этого элемента только один атрибут:

• 

test
(обязательный). Принимает логическое (
Boolean
) значение (
true/false
) проверяемого условия.

Элемент

содержит тело шаблона.

Атрибут проверки принимает значение true/false выражения, определяющего, будет ли применяться заключенное в элементе

тело шаблона или нет. Например, вот как я добавил элементы
с соответствующими знаками пунктуации для всех планет, кроме последней:

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

</code></pre></p><p><pre><code>    The Planets</code></pre></p><p><pre><code>

    The first three planets are: 


    Each planet must have a name!

, 

and 

   .

   .

   .

Эти два элемента выбирают все элементы

за исключением последнего, поэтому элемент
можно применить для последнего элемента
. Тело шаблона в этом элементе будет применено, если ни в одном элементе
в элементе
условие не примет значение
true
.

У элемента

нет атрибутов, и он содержит тело шаблона. Вот как это выглядит в листинге 5.4.

Листинг 5.4. Применение

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

</code></pre></p><p><pre><code>    The Planets</code></pre></p><p><pre><code>

    The first three planets are: 


    Each planet must have a name!

<