Книга: Технология XSLT
Элемент xsl:key
Элемент xsl:key
Синтаксис элемента несложен:
<xsl:key
name="имя"
match="паттерн"
use="выражение"/>
Элемент верхнего уровня xsl:key
определяет в преобразовании ключ именем, заданным в значении атрибута name
, значением которого для каждого узла документа, соответствующего паттерну match
, будет результат вычисления выражения, заданного в атрибуте use
. Ни атрибут use
, ни атрибут match
не могут содержать переменных.
Пример
В нашем примере элементы item
идентифицируются значениями своих атрибутов source
. Для их идентификации мы можем определить ключ с именем src
следующим образом:
<xsl:key name="src" match="item" use="@source"/>
Следуя строгому определению, данному в спецификации языка, ключом называется тройка вида (node, name, value)
, где node
— узел, name
— имя и value
— строковое значение ключа. Тогда элементы xsl:key
, включенные в преобразование, определяют множество всевозможных ключей обрабатываемого документа. Если этому множеству принадлежит ключ, состоящий из узла x
, имени у
и значения z
, говорят, что узел x
имеет ключ с именем у
и значением z
или что ключ у
узла x
равен z
.
Пример
Ключ src
из предыдущего примера определяет множество, которое состоит из следующих троек:
(<item name="A".../>, 'src', 'a')
(<item name="B".../>, 'src', 'b')
(<item name="C".../>, 'src', 'a')
(<item name="D".../>, 'src', 'c')
...
(<item name="H".../>, 'src', 'a')
В соответствии с нашими определениями мы можем сказать, что элемент
<item source="b" name="B"/>
имеет ключ с именем "src"
и значением "b"
или что ключ "src"
элемента
<item source="a" name="H"/>
равен "a"
.
Для того чтобы обращаться к множествам узлов по значениям их ключей, в XSLT существует функция key
, о которой мы сейчас и поговорим.
- Элемент xsl:call-template
- Элемент : выбор по ключу
- key()
- Использование множеств узлов в функции key
- Функция key в паттернах
- Создание свободно позиционируемых элементов
- 6.4. Рабочий лист Excel и его структурные элементы
- Использование отдельных процессоров XSLT
- Письма с элементами графики и вложениями
- Элемент STYLE
- 4.4. Логические элементы и синтез логических схем
- 4.7 Структурные элементы SAN