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

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

Шрифт:

 <xsl:template match="PLANETS">

<HTML>

<BODY>

The average planetary mass is

<xsl:value-of select="sum(child::PLANET/child::MASS) div count(child::PLANET/child::MASS)"/>

</BODY>

</HTML>

 </xsl:template>

</xsl:stylesheet>

Логические функции XPath

XPath также поддерживает следующий набор логических функций:

• 

boolean
. Приводит аргумент к логическому значению;

• 

false
. Возвращает false (ложь);

• 

lang
. Проверяет, совпадает ли язык, установленный в атрибуте
xml:lang
, с языком, переданным в функцию;

• 

not
. Инвертирует значение true\false аргумента;

• 

true
. Возвращает true (истина).

boolean

Функция

boolean
преобразует аргумент в логическое значение. Функция применяется следующим образом:

boolean boolean(object)

Ниже показано, как функция работает с различными типами XPath:

• 

number
. Если число равно нулю, результатом будет ложь; иначе результат — истина. NaN всегда возвращает ложь;

• 

string
. Если строка не пуста, результат — истина, иначе — ложь;

• 

boolean
. Значение не изменяется;

• 

nodeset
. Пустой набор узлов дает ложь, не пустой — истину;

• Фрагмент результирующего дерева в XSLT 1.0 всегда дает истину.

false

Функция

false
возвращает ложь. Она применяется следующим образом:

boolean false

В XPath не определены логические константы, поэтому для того чтобы присвоить переменной значение false, нужно прибегнуть к функции

false
. (С переменными вы познакомитесь в главе 9.)

lang 

Функция

lang
проверяет, совпадает ли язык контекстного узла (определенный в атрибуте
xml:lang
) с переданным ей языком. Функция применяется следующим образом:

boolean lang(string)

Функции нужно передать строку, определяющую язык в спецификации XML, как, например, «en» для английского, «de» для немецкого и «jp» для японского.

В следующем примере я проверяю, написан ли исходный документ на английском. Сначала я устанавливаю атрибут

xml:lang
в
planets.xml
в значение, соответствующее английскому языку:

<?xml version="1.0"?>

<?xml=stylesheet type="text/xml" href="#"?>

<PLANETS xml:lang="en">

 <PLANET>

<NAME>Mercury</NAME>

<MASS UNITS="(Earth = 1)">.0553</MASS>

<DAY UNITS="days">58.65</DAY>

<RADIUS UNITS="miles">1516</RADIUS>

<DENSITY UNITS="(Earth = 1)">.983</DENSITY>

<DISTANCE UNITS="million miles">43.4</DISTANCE><!--B перигелии-->

 </PLANET>

 .

 .

 .

Теперь я удостоверяюсь, что исходный документ на самом деле написан на английском, перед тем как применять к нему шаблоны:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

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

 <xsl:template match="/PLANETS">

<xsl:if test="lang('en')">

<HTML>

<HEAD>

<TITLE>

The Planets Table

</TITLE>

</HEAD>

<BODY>

<H1>

The Planets Table

</H1>

  • Читать дальше
  • 1
  • ...
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • ...

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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