目录搜索
XSLT 基础教程XSL 语言XSLT 简介XSLT 浏览器XSLT - 转换XSLT <xsl:template> 元素XSLT <xsl:value-of> 元素XSLT <xsl:for-each> 元素XSLT <xsl:sort> 元素XSLT <xsl:if> 元素XSLT <xsl:choose> 元素XSLT <xsl:apply-templates> 元素XSLT - 在客户端XSLT - 在服务器端XSLT - 编辑 XMLXML 编辑器XSLT 元素参考手册XSLT <xsl:apply-imports> 元素XSLT <xsl:apply-templates> 元素XSLT <xsl:attribute> 元素XSLT <xsl:attribute-set> 元素XSLT <xsl:call-template> 元素XSLT <xsl:choose> 元素XSLT <xsl:comment> 元素XSLT <xsl:copy> 元素XSLT <xsl:copy-of> 元素XSLT <xsl:decimal-format> 元素XSLT <xsl:element> 元素XSLT <xsl:fallback> 元素XSLT <xsl:for-each> 元素XSLT <xsl:if> 元素XSLT <xsl:import> 元素XSLT <xsl:include> 元素XSLT <xsl:key> 元素XSLT <xsl:message> 元素XSLT <xsl:namespace-alias> 元素XSLT <xsl:number> 元素XSLT <xsl:otherwise> 元素XSLT <xsl:output> 元素XSLT <xsl:param> 元素XSLT <xsl:preserve-space> 和 <xsl:strip-space> 元素XSLT <xsl:processing-instruction> 元素XSLT <xsl:sort> 元素XSLT <xsl:stylesheet> 和 <xsl:transform> 元素XSLT <xsl:template> 元素XSLT <xsl:text> 元素XSLT <xsl:value-of> 元素XSLT <xsl:value-of> 元素XSLT <xsl:variable> 元素XSLT <xsl:when> 元素XSLT <xsl:with-param> 元素XSLT 函数XSLT current() 函数XSLT document() 函数XSLT element-available() 函数XSLT format-number() 函数XSLT function-available() 函数XSLT generate-id() 函数XSLT key() 函数XSLT system-property() 函数XSLT unparsed-entity-uri() 函数
文字

XSLT <xsl:key> 元素



定义和用法

The <xsl:key> 元素是顶层元素(top-level element),它可声明一个命名的键(即为 XML 文档中指定的元素分配的名称和值对)。该键通过 key() 函数在样式表中使用,帮助您有效地在复杂的 XML 文档中访问分配的元素。

注意:键不必是唯一的!


语法

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

属性

属性描述
namename必需。规定键的名称。
matchpattern必需。定义该键被应用到哪个节点。
useexpression必需。指定要作为每个节点的键的值使用的表达式。

实例 1

假设您拥有名为 "persons.xml" 的 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"/>

如需找到 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>
上一篇:下一篇: