RE: [xsl] filtering elements by single xpath

Subject: RE: [xsl] filtering elements by single xpath
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 5 Apr 2006 18:14:00 +0100
> I'm sure Jeni's pages or the faq will hav eexamples, but you just need
> to make sure the key is unique in each case. In your case you 
> want each
> body to have a separate set of keys so:
> 
> <xsl:key name="x" match="item" use="concat(generate-id(..),' 
> ',@name)"/>
> 
> <xsl:template match="body">
>   <xsl:for-each select="key('x',concat(generate-id(.),' 
> ',item-filter/allow-items/@with-name))"
> 
> or without the key just do
> 
> <xsl:template match="body">
>   <xsl:for-each
>   select="item[@name=current()/item-filter/allow-items/@with-name]"
> 


Alternatively, XSLT 2.0 allows key() to have a third argument which
specifies the subtree you want to search.

Michael Kay
http://www.saxonica.com/

Current Thread