Вход/Регистрация
XSLT
вернуться

Холзнер Стивен

Шрифт:

<xsl:message terminate="yes">

Each planet must have a name!

</xsl:message>

</xsl:if>

<xsl:value-of select="NAME"/>

<xsl:choose>

.

.

.

</xsl:choose>

 </xsl:template>

</xsl:stylesheet>

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

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

• 

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

Элемент

<xsl:when>
содержит тело шаблона.

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

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

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

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

 <xsl:output method="xml"/>

 <xsl:template match="PLANETS">

<DOCUMENT>

<TITLE>

The Planets

</TITLE>

<PLANETS>

The first three planets are: <xsl:apply-templates select="PLANET"/>

</PLANETS>

</DOCUMENT>

 </xsl:template>

 <xsl:template match="PLANET">

<xsl:if test="NAME[not(text)]">

<xsl:message terminate="yes">

Each planet must have a name!

</xsl:message>

</xsl:if>

<xsl:value-of select="NAME"/>

<xsl:choose>

<xsl:when test="position!=last">, </xsl:when>

<xsl:when test="position=last-1">and </xsl:when>

.

.

.

</xsl:choose>

 </xsl:template>

</xsl:stylesheet>

Эти два элемента <xsl:when> выбирают все элементы

<PLANET>
за исключением последнего, поэтому элемент
<xsl:otherwise>
можно применить для последнего элемента
<PLANET>
. Тело шаблона в этом элементе будет применено, если ни в одном элементе
<xsl:when>
в элементе
<xsl:choose>
условие не примет значение
true
.

У элемента

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

Листинг 5.4. Применение <xsl:choose>

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

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

 <xsl:output method="xml"/>

 <xsl:template match="PLANETS">

<DOCUMENT>

<TITLE>

The Planets

</TITLE>

<PLANETS>

The first three planets are: <xsl:apply-templates select="PLANET"/>

</PLANETS>

</DOCUMENT>

 </xsl:template>

 <xsl:template match="PLANET">

<xsl:if test="NAME[not(text)]">

  • Читать дальше
  • 1
  • ...
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: