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

We use cookies. Read the Privacy and Cookie Policy

Логические значения 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 первоначально и задумывался, поэтому оставшаяся часть главы будет посвящена работе с ними.