Книга: XSLT
Выбор по ID
Выбор по ID
В дополнение к созданию образцов из образцов шага, задающих ось, условие узла и предикат, можно применять и образец id()
для выбора элементов с определенным значением ID. Для работы с этим образцом необходимо задать элементам атрибут ID, который должен быть объявлен с типом ID, что можно сделать в DTD или схеме документа. В следующем примере правило добавляет текст всех элементов, имеющих ID "favorite
":
<xsl:template match = "id('favorite')">
<H3><xsl:value-of select="."/></H3>
</xsl:template>
Вот как может выглядеть объявление DTD для planets.xml
, в котором объявляется ID и его значение устанавливается в "favorite
":
<?xml version="1.0"?>
<?xml-stylesheet type="text/xml" href="#stylesheet"?>
<!DOCTYPE PLANETS [
<!ELEMENT PLANET (CUSTOMER)*>
<!ELEMENT CUSTOMER (NAME,MASS,RADIUS,DAY)>
<!ELEMENT NAME (#PCDATA)>
<!ELEMENT MASS (#PCDATA)>
<!ELEMENT RADIUS (#PCDATA)>
<!ELEMENT DAY (#PCDATA)>
<!ATTLIST PLANET
id ID #REQUIRED>
]>
<PLANETS>
<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>
.
.
.
Ряд процессоров XSLT не может осуществлять выбор по ID, потому что они не читают DDS или схему XML. (Возможность доступа к информации ID должна быть включена в XSLT 2.0.) Но есть альтернатива: можно осуществлять выбор по ключу.
ВОЗМОЖНАЯ ПОДДЕРЖКА IDREF
Помимо упрощения работы с ID, в XSLT 2.0 W3C даже рассматривает возможность включения поддержки IDREF. В частности, по заданному ID процессор XSLT может предоставить список всех элементов с атрибутом IDREF или IDREFS, ссылающихся на этот ID. (Заметьте, что сейчас это тоже можно сделать при помощи элемента <xsl:key> и образца "key()".)
- Выбор корневого узла
- Выбор элементов
- Выбор дочерних элементов
- Выбор потомков элемента
- Выбор атрибутов
- Формальное определение образцов выбора
- Образцы шага, часть 1: оси образца
- Образцы шага, часть 2: условия узла
- Образцы шага, часть 3: предикаты
- Создание предикатов
- Выбор по ID
- Выбор по ключу
- Применение операции Or
- Примеры образцов
- Выбор стратегии ценообразования
- Выбор аппаратного обеспечения для InterBase
- Рекомендации по выбору архитектуры: Classic или SuperServer?
- Ограничение результатов выборки FIRST
- Выбор спутника жизни
- 1. Унарная операция выборки
- 1. Операция выборки.
- Отчет о выборе ERP-системы
- 2.6.2. Выбор вариантов бронирования услуг контрагентов
- Глава 4 Поиск и выбор идеи
- Глава 2 Выбор стратегии интернет-маркетинга
- Выбор правильного формата для вашего видео на YouTube