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

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

Шрифт:

• 

local-name(node-set)
. Возвращает локальное имя первого узла в наборе узлов. Если опустить
node-set
, функция будет применена к контекстному узлу;

• 

namespace-uri(node-set)
. Возвращает URI пространства имен первого узла в наборе узлов. Если опустить
node-set
, функция будет применена к контекстному узлу;

• 

name(node-set)
. Возвращает полностью определенное имя первого узла в наборе узлов. Если опустить
node-set
, функция будет применена к контекстному узлу.

В листинге 4.6 я перенумеровал элементы в выходном документе при помощи функции

position
.

Листинг 4.6. Применение функции position

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

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

 <xsl:template match="PLANETS">

<HTML>

<HEAD>

<TITLE>

The Planets

</TITLE>

</HEAD>

<BODY>

<xsl:apply-templates select="PLANET"/>

</BODY>

</HTML>

 </xsl:template>

 <xsl:template match="PLANET">

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

<xsl:text> </xsl:text>

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

 </xsl:template>

</xsl:stylesheet>

Вот результат. Как видите, планеты перенумерованы:

<HTML>

 <HEAD>

<TITLE>

The Planets

</TITLE>

 </HEAD>

 <BODY>

1. Mercury

2. Venus

3. Earth

 </BODY>

</HTML>

Можно также применять функции для работы с наборами узлов в предикатах, как, например,

PLANET[position=last]
, выбирающая последнего ребенка
<PLANET>
контекстного узла

Предикаты: логические значения

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

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

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

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

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

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

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

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

ИСПОЛЬЗОВАНИЕ СИМВОЛА <

Особенно обратите внимание на то, что непосредственно в документах XML или XSL нельзя использовать символ <, необходимо использовать ссылку на сущность &lt;.

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

В листинге 4.7 я определяю элемент

<PLANET>
Земли и помещаю в таблицу строки "
Earth
", "
needs
", "
no
" и "
introduction
" вместо числовых данных Земли. Я определяю, которая из планет есть Земля, при помощи предиката
"[NAME='Earth']"
, проверяющего значение элемента
<NAME>
, которое, в свою очередь, представляет собой заключенный в элементе текст. Я также предоставил шаблон для других планет, удовлетворяющих предикату "
[NAME!='Earth']
''.

  • Читать дальше
  • 1
  • ...
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • ...

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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