Элемент 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>