xsl-list
[Top] [All Lists]

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

2003-07-11 08:55:56
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