[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

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
Keywords