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

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

Шрифт:

<TD>Venus</TD>

<TD>.815 (Earth = 1)</TD>

<TD>3716 You should switch to kilometers.</TD>

<TD>116.75 days</TD>

<TD>66.8 You should switch to kilometers.</TD>

</TR>

<TR>

<TD>Earth</TD>

<TD>1 (Earth = 1)</TD>

<TD>2107 You should switch to kilometers.</TD>

<TD>1 days</TD>

<TD>128.4 You should switch to kilometers.</TD>

</TR>

</TABLE>

 </BODY>

</HTML>

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

Логические значения XPath

Логические (Boolean) выражения XPath вычисляются либо в истину (true), либо в ложь (false), и обычно они используются только в предикатах. Для чисел ноль принимается за ложь, другие значения — за истину. Пустая строка, "", также считается ложью, все остальные строки — истиной.

Для генерации логических результатов true/false в XPath можно применять ряд логических операций, как мы видели в обзоре в главе 4:

• 

!=
означает «не равно»;

• 

<
означает «меньше, чем» (в документах XML используйте
&lt;
);

• 

<=
означает «меньше или равно» (в документах XML используйте
&lt;=
);

• 

=
означает «равно» (программисты на С, С++, Java и JavaScript, обратите внимание: эта операция пишется как один знак =, а не два);

• 

>
означает «больше, чем»;

• 

>=
означает «больше или равно».

Для связи логических выражений логическими операциями And и Or используются ключевые слова

and
и
or
, слово
not
инвертирует логический смысл выражения, как в следующем примере, где я выбираю все элементы
<PLANET>
, кроме первого и последнего:

<xsl:template match="PLANET[not(position = 1) and not(position = last)]">

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

</xsl:template>

Следующий пример уже встречался нам в главе 5, он использует логическую операцию

not
и операции
=
и
!=
:

<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:otherwise>.</xsl:otherwise>

</xsl:choose>

</xsl:template>

Кроме того, имеется функция

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

Как вы видели, существуют все виды выражений XPath, в том числе возвращающие узлы, числа, строки и логические значения. Наиболее важным типом выражений XPath является путь расположения; для создания путей расположена XPath первоначально и задумывался, поэтому оставшаяся часть главы будет посвящена работе с ними.

Создание путей расположения XPath

Вы уже знакомы со взглядом на документы с позиции XPath; например, в XPath определено семь типов узлов документа:

• Корневой узел. Самое начало документа. Этот узел представляет в XPath весь документ;

• Узлы элементов. Представляют элементы в деревьях XPath, обозначенные открывающим и соответственным закрывающим тегами или единственным пустым тегом элемента;

• Узлы атрибутов. Значение атрибута после раскрытия ссылок на сущность и отбрасывания окружающих символов-разделителей;

  • Читать дальше
  • 1
  • ...
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • ...

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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