Phần tử <xsl:key> của XSLT

Định nghĩa và cách sử dụng

<xsl:key> là phần tử cấp cao, có thể định nghĩa một khóa tên (là cặp tên và giá trị được phân phối cho các phần tử được chỉ định trong tài liệu XML).

Khóa này được sử dụng qua hàm key() trong bảng định dạng, giúp bạn truy cập hiệu quả các phần tử được phân phối trong tài liệu XML phức tạp.

Ghi chú:Khóa không nhất thiết phải là duy nhất!

Cú pháp

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

Thuộc tính

Thuộc tính Giá trị Mô tả
name name Bắt buộc. Quy định tên khóa.
match pattern Bắt buộc. Định nghĩa khóa được áp dụng cho nút nào.
use expression

Bắt buộc. Đ指定 biểu thức để sử dụng làm giá trị của khóa.

Giá trị khóa có thể là bất kỳ giá trị nào sau: thuộc tính, phần tử con hoặc nội dung phần tử khớp.

Mô hình

Ví dụ 1

Giả sử bạn có tệp XML có tên là "persons.xml":

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

Bạn có thể định nghĩa một khóa trong tệp XSL như sau:

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

Để tìm kiếm person với id="050676", hãy sử dụng mã này (trong tệp 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>