XSLT <xsl:key> 元素

定義和用法
The <xsl:key> 元素是頂層元素(top-level element),它可聲明一個命名的鍵(即為 XML 文檔中指定的元素分配的名稱和值對)。該鍵通過 key() 函數在樣式表中使用,幫助您有效地在複雜的 XML 文檔中訪問分配的元素。
注意:鍵不必是唯一的!
語法
<xsl:key
name="name"
match="pattern"
use="expression"/>
name="name"
match="pattern"
use="expression"/>
屬性
屬性 | 值 | 描述 |
---|---|---|
name | name | 必需。規定鍵的名稱。 |
match | pattern | 必需。定義該鍵被應用到哪個節點。 |
use | expression | 必需。指定要作為每個節點的鍵的值使用的運算式。 |
實例 1
假設您擁有名為 "persons.xml" 的 XML 檔:
<persons>
<person name="Tarzan" id="050676"/>
<person name="Donald" id="070754"/>
<person name="Dolly" id="231256"/>
</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"/>
如需找到 id="050676" 的 person,請使用這些代碼(在 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>
<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>
