XSLT <xsl:key> ÔªËØ

¶¨ÒåºÍÓ÷¨

<xsl:key> ÔªËØÊǶ¥²ãÔªËØ£¬Ëü¿ÉÉùÃ÷Ò»¸öÃüÃûµÄ¼ü£¨¼´Îª XML ÎĵµÖÐÖ¸¶¨µÄÔªËØ·ÖÅäµÄÃû³ÆºÍÖµ¶Ô£©¡£

´Ë¼üͨ¹ý key() º¯ÊýÔÚÑùʽ±íÖÐʹÓ㬰ïÖúÄúÓÐЧµØÔÚ¸´Ô XML ÎĵµÖзÃÎÊ·ÖÅäµÄÔªËØ¡£¡£

×¢ÊÍ£º¼ü²»±ØÊÇΨһµÄ£¡

Óï·¨

<xsl:key
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>

Äú¿ÉÒÔÔÚ 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>
VUE