Элемент XSLT <xsl:key>

Определение и использование

<xsl:key> является верхним уровнем элемента, который может определить именованный ключ (имя и значение пары для элементов, указанных в XML-документе).

Этот ключ используется через функцию key() в шаблоне, чтобы помочь вам эффективно обращаться к элементам, распределенным в сложных XML-документах.

Комментарий:Ключ не обязан быть уникальным!

Синтаксис

<xsl:key
name="name"
match="pattern"
use="expression"

Атрибут

Атрибут Значение Описание
name name Обязателен. Определяет имя ключа.
match pattern Обязателен. Определяет, на какие узлы применяется этот ключ.
use expression

Обязателен. Указывает выражение, которое используется в качестве значения ключа.

Значением ключа может быть любое из следующих значений: атрибут, подэлемент или содержимое элемента.

Пример

Пример 1

Предположим, что у вас есть XML-файл с именем "persons.xml":

<persons>
  <person name="Tarzan" id="050676"/>
  <person name="Donald" id="070754"/>
  <person name="Dolly" id="231256"/>
</persons>

Вы можете определить ключ в файле XSL, например:

<xsl:key name="preg" match="person" use="@id"/>

Чтобы найти person с id="050676", используйте следующий код (в файле XSL):

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<xsl:key name="preg" match="person" use="@id"/>
<xsl:template match="/">
  <html>
  <body>
  <xsl:for-each select="key('preg','050676')">
    <p>
    Id: <xsl:value-of select="@id"/><br />
    Name: <xsl:value-of select="@name"/>
    </p>
  </xsl:for-each>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>