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

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

Шрифт:

• 

text
выбирает все дочерние текстовые узлы контекстного узла;

• 

text[starts-with(., "In the course of human events")]
выбирает все дочерние текстовые узлы контекстного узла, начинающиеся с "
In the course of human events
";

• 

/PLANETS[@UNITS="million miles"]
выбирает все элементы
PLANETS
, у которых значение атрибута
UNITS
равно "
million miles
";

• 

PLANET[/PLANETS/@UNITS=@REFERENCE]
выбирает все элементы
<PLANET>
, у которых значение атрибута
REFERENCE
такое же, как значение атрибута
UNITS
элемента
PLANETS
в корне документа;

• 

PLANET/*
выбирает все дочерние элементы элементов
PLANET
;

• PLANET/*/DAY выбирает все элементы DAY — правнуки элементов PLANET, являющиеся детьми контекстного узла;

• 

*/*
выбирает элементы-внуки текущего элемента;

• 

astrophysics:PLANET
выбирает элемент
PLANET
в пространстве имен «
astrophysics
»;

• 

astrophysics:*
выбирает любые элементы в пространстве имен «
astrophysics
»;

• 

PLANET[DAY and DENSITY]
выбирает все элементы
<PLANET>
, у которых есть по крайней мере один элемент
<DAY>
и один элемент
<DENSITY>
;

• 

PLANET[(DAY or DENSITY) and MASS]
выбирает все элементы
<PLANET>
, у которых есть по крайней мере один элемент
<DAY>
или один элемент
<DENSITY>
, а также по крайней мере один элемент
<MASS>
;

• 

PLANET[DAY and not(DISTANCE)]
выбирает все элементы
<PLANET>
, у которых есть по крайней мере один элемент
<DAY>
и нет элементов
<DISTANCE>
;

• 

PLANET[MASS=/STANDARD/REFERENCE/MASS]
выбирает все элементы
<PLANET>
, у которых значение элемента
<MASS>
равно значению элемента
/<STANDARD>/<REFERENCE>/<MASS>
.

На этом мы завершаем в данный момент рассмотрение образцов выбора; связанный материал приводится в главе 7 при рассмотрении выражений XPath. Глава 5 начинается с изучения способов работы с данными в XML-документах путем сортировки и принятия решения на основе значений данных.

Глава 5

Принятие решений и сортировка данных

Эта глава посвящена принятию решений, сортировке и различным способам обработки данных в ХМL-документах. Мы рассмотрим элементы

<xsl:if>
,
<xsl:choose>
,
<xsl:when>
,
<xsl:otherwise>
,
<xsl:for-each>
и
<xsl:sort>
, при помощи которых вы сможете обрабатывать данные и управлять выполнением преобразования в зависимости от значения данных.

Однако эти элементы не предоставляют такой точности, как в языках программирования. Поэтому я также представлю в этой главе расширения XSLT, в том числе элемент рабочего проекта XSLT 1.1

<xsl:script>
. Этот элемент был предназначен для упрощения применения Java и JavaScript с процессором XSLT. (Для чтения этой книги нет необходимости владеть Java или JavaScript, но если вы знаете эти языки, вам будет приятно удостовериться, что некоторые процессоры XSLT дают возможность использовать их при преобразованиях XML.) Нечто похожее на этот элемент обязательно появится в XSLT 2.0. При помощи расширений вы можете расширять спецификацию XSLT, добавляя в XSLT новые элементы и функции какого-либо производителя или свои собственные.

Кроме того, в этой главе мы также рассмотрим, как перенумеровать элементы в документе, что делать в случае, когда ваш процессор XSLT не поддерживает определенное расширение, и многое другое. Я начну с наиболее часто используемого элемента из рассматриваемых в данной главе:

<xsl:if>
.

Элемент <xsl:if>

При помощи элемента

<xsl:if>
осуществляются проверки условия и принимаются действия на основе результата проверки. Он во многом похож на оператор
if
в языках программирования. У элемента
<xsl:if>
один атрибут:

• 

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

Элемент заключает в себе тело шаблона.

Вот как это работает: вы включаете тело шаблона внутрь элемента

<xsl:if>
, проверяющего какое-то выражение. Если это выражение истинно, тело шаблона используется, если ложно — игнорируется:

<xsl:if test="expression">

 <!--template body-->

  • Читать дальше
  • 1
  • ...
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • ...

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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