Subject: Re: [xsl] extract the right elements From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Tue, 30 Sep 2003 12:52:47 +0100 |
Hi Clemens, > <xsl:for-each select="//INSTANCE[@class='Audio' or @class='Web-Site']"> > <xsl:for-each select="key('tracker','Position')"> > <item> > <xsl:attribute name="identifierref"> > <xsl:value-of select="."/> > </xsl:attribute> > <title> > <xsl:value-of select="parent::INSTANCE/@name"/> > </title> > </item> > </xsl:for-each> > </xsl:for-each> The key() function returns the nodes with a certain value for a particular key. In the above, key('tracker', 'Position') will always return the same node-set: all the nodes that, on the 'tracker' key, have the value 'Position'. So you get an <item> for each of those nodes, for each of the <INSTANCE> elements whose class is 'Audio' or class is 'Web-Site'. > the problem is, that i don't want to use it on all "instance" > elements, but only on those whose class attributes are either > 'Audio' or 'Web-Site', but the first for-each loop that is meant to > fulfill this purpose simply doesn't work, instead it always runs the > loop for all "instance" elements. It sounds as though you want to filter the elements that are being returned by the key, to only include those whose parent <INSTANCE> element has a class of 'Audio' or 'Web-Site'. In that case, you need to apply the filter (the predicate) to the node-set returned by the key() function, as follows: <xsl:for-each select="key('tracker', 'Position') [parent::INSTANCE/@class = 'Audio' or parent::INSTANCE/@class = 'Web-Site']"> ... </xsl:for-each> On the other hand, I'm not sure why you're using the key() at all here. I think that you could get the result that you want (from the previous thread) with: <xsl:for-each select="INSTANCE[@class = 'Audio' or @class = 'Web-Site']"> <item identifier="{ATTRIBUTE[@name = 'Position']}"> <xsl:value-of select="@name" /> </item> </xsl:for-each> Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] extract the right elements, clemens schrenk | Thread | Re: [xsl] extract the right element, David Carlisle |
Re: [xsl] restructuring element hie, james walker | Date | [xsl] Re: restructuring element hie, Dimitre Novatchev |
Month |