RE: [xsl] matching on multiple attributes contained in a node-set

Subject: RE: [xsl] matching on multiple attributes contained in a node-set
From: Jarno.Elovirta@xxxxxxxxx
Date: Fri, 28 Mar 2003 07:11:00 +0200
Hi,

> The desired output would list all the students, but only 
> once.  That is, larry 
> is listed as being on the list, all others are not.
> 
> The variable $list can be variable in length.. that is, I may 
> add or remove 
> items from this list (in fact, in the real-deal, this is a 
> passed-in parameter 
> to the Transformer.)

<xsl:template match="dftml">
  <xsl:for-each select="student">
    <xsl:variable name="s" select="." />
    <xsl:for-each select="xalan:nodeset($list)/item[$s/grade/@value = @grade and $s/type/@value = @type]">
      <xsl:value-of select="$s/name/@value" />
      <xsl:text> is in the list.&#xA;</xsl:text>
    </xsl:for-each>
  </xsl:for-each>
</xsl:template>

You should consider switching from xalan:nodeset to exslt:node-set. Also, if the $list is passed as a parameter, you shouldn't need to use node-set extensions. Hope this helps,

Cheers,

Jarno - Linnunradan käsikirja liftareille: Osa 4

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread