RE: [xsl] Using not(...a nd ... ) to select nodes

Subject: RE: [xsl] Using not(...a nd ... ) to select nodes
From: "Lars Huttar" <lars_huttar@xxxxxxx>
Date: Fri, 11 Jul 2003 10:55:56 -0500
Michael Kay wrote:
> [Lars wrote:]
> > In order for your code to work, current() in the select 
> > expression of a for-each loop must refer to the <item> node 
> > currently being tested for whether it gets selected, right? 
> > If so, is this the way xsl:for-each / xpath work? I realize 
> > that INSIDE the for-each, current() refers to the node 
> > currently being processed, but is that also true in the 
> > select expression of the for-each? Or does current() there 
> > refer to the context node outside the for-each?
> 
> current() always refers to the node that "." would refer to if you
> replaced the whole XPath expression containing the call on current()
> with ".".

Thank you. In other words, if I understand right, current() in the
select expression of a for-each gives the context node as it
is outside the for-each.

So in this case,

[xsl:for-each]
> select="items/item[not(preceding-sibling::*
>    [name=current()/name and
>     type = current()/type and
>    status = current()/status])]"

current() does not give what we would want if we were trying to
find all unique items. Right (Wendell)?
I think that's why I was confused...

Lars


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


Current Thread